Variabili d'Istanza

Una variabile d'istanza ha un nome che comincia con una @, e la sua visibilità è confinata all'oggetto a cui si riferisce self. A due oggetti differenti , anche se appartenenti alla stessa classe, è permesso di avere valori differenti pe rle proprie variabili d'istanza.

Dall'esterno dell'oggetto, le variabili d'istanza non possono venire ne' alterate ne' osservate (cioè, le variabili d'istanza in ruby non sono mai pubbliche) eccetto che dai metodi che sono messi apposta dal programmatore.

Come con le variabili globali, le variabili d'istanza hanno il valore nil finchè non sono inizializzate .

Le variabili d'istanza in ruby non hanno bisogno di dichiarazione. Ciò implica una struttura flessibile degli oggetti. In effetti, ogni variabile d'istanza viene aggiunta dinamicamente ad un oggetto la prima volta che le si fa riferimento.

ruby> class InstTest
    |   def set_foo(n)
    |     @foo = n
    |   end
    |   def set_bar(n)
    |     @bar = n
    |   end
    | end
   nil
ruby> i = InstTest.new
   #<InstTest:0x83678>
ruby> i.set_foo(2)
   2
ruby> i
   #<InstTest:0x83678 @foo=2>
ruby> i.set_bar(4)
   4
ruby> i
   #<InstTest:0x83678 @foo=2, @bar=4>

Notate che i qui sopra non riporta nessun valore per @bar finchè non viene invocato il metodo set_bar.

Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Condividi le tue opinioni su questo articolo!