Ruby/Autres variables
Ce chapitre vous présente de nouvelles variables : les variables d'instance, les variables de classe et les constantes de classe. Elles ne prennent leur sens que dans le cadre de la programmation orientée objet.
Variables d'instance
modifierLes variables d'instance ne sont accessibles que depuis une classe. Elles contiennent des informations qui caractérisent l'instance d'un objet. Deux objets de la même classe peuvent donc avoir des mêmes variables d'instance dont la valeur diffère. Elles sont donc spécifiques à une instance d'une classe donnée.
Leur nom est préfixé du symbole @
.
class Ordinateur
def initialize(prix)
@prix = prix
end
end
monOrdi = Ordinateur.new(799)
tonOrdi = Ordinateur.new(829)
@prix
est une variable d'instance de la classe Ordinateur
, elle vaut 799 pour l'instance monOrdi
et 829 pour l'instance tonOrdi
.
Variables de classe
modifierLes variables de classe contiennent une information stockée dans la classe elle-même, et non dans les objets instanciés par cette classe ; en outre, cette information s'applique à toutes les instances créées par cette classe.
Le nom de ces variables est préfixé de @@
.
Dans notre exemple, @@nbRoues
est une variable de classe ; les deux instances monAuto
et tonAuto
ont cette variable de classe (et sa valeur 4) en commun car ce sont des instances de la même classe Voiture
.
Constantes de classe
modifierIl vous est également possible de créer des constantes de classe, elles sont déclarées au sein d'une classe et ne peuvent pas être modifiées :
NB_ROUES
est une constante commune à toutes les instances de la classe Voiture
.