Variables d'instance
Une variable est d’instance si son nom commence par @, et sa portée est limitée aux objets auxquels se réfère self. Deux objets différents, même appartenant à la même classe, peuvent avoir des valeurs différentes dans leurs variables d’instance respectives. De l’extérieur de l’objet, les variables d’instance ne peuvent être ni altérées ni même vues (autrement dit les variables d’instance ne sont jamais publiques), sauf par des méthodes explicitement fournies par le programmeur. Comme les variables globales, les variables d’instance ont la valeur nil jusqu’à ce qu’elles soient initialisées.
Les variables d’instance n’ont pas à être déclarées, en ruby. Ceci donne une structure d’objets très souple. En fait, chaque variable d’instance est dynamiquement ajoutée à l’objet au moment de sa première invocation.
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>
Remarquez que ci-dessus i n’indique une valeur pour @bar qu’après que la méthode set_bar ait été invoquée.
Précédent : GDU : Variables globales Suivant : GDU : Variables locales


