Début
// Appel explicite du destructeur de A
super.~A()
Fin
FinClasse
Programme obj11
Var
p_o1 :pointeur sur B
Début
p_o1←nouveau B // appel implicite au constructeur
...
Libérer p_o1 // appel implicite au destructeur
Fin
3. Les membres statiques
a. Attributs
Quand vous créez une instance de classe (un objet), chaque objet résultant dispose de son propre espace mémoire
et chaque attribut donné dispose donc de sa propre valeur totalement indépendante de celle du même attribut d’un
autre objet.
Pourtant il peut y avoir des cas où vous voudrez partager un attribut commun à tous les objets de ce type de classe.
Le cas d’école est celui où vous voulez connaître le nombre de fois où la classe a été instanciée. Dans le cas de la
classe Ecran, vous voudriez par exemple savoir combien d’objets de type Ecran ont été créés.
Pour ça, l’attribut doit être commun à tous les objets, et chaque objet doit pouvoir modifier la valeur de cet attribut,
valeur qui sera ensuite la même pour tous les objets. C’est le rôle de l’attribut statique.
Un attribut statique est un attribut qui n’est créé qu’en un seul exemplaire et qui est commun à tous les objets de
la classe.
Vous le déclarez comme n’importe quel attribut, sauf que vous lui rajoutez le motclé « statique » après son type.
L’attribut statique peut être privé ou public. Il peut être important d’initialiser une valeur par défaut pour un attribut
statique.
Classe Ecran
attributs privés
nb_ecrans←0 :entier statique
...
FinClasse
Plutôt que d’utiliser this pour y accéder, vous utilisez le nom de la classe ellemême, tant depuis l’extérieur de l’objet
(si l’attribut est public) que de l’intérieur. L’exemple suivant montre les possibilités associées avec deux objets : le
constructeur rajoute 1, le destructeur soustrait 1. Les étapes intermédiaires affichent l’état de l’attribut statique
nb_ecrans.
Classe Ecran
attributs publics
nb_ecrans←0 :entier statique
...
méthodes publiques
Constructeur Ecran()
Début
nb_ecrans←nb_ecran+1
Fin
Destructeur ~Ecran()
Début
nb_ecrans←nb_ecran-1
Fin
Procédure nbEcrans()
Début
Afficher nb_ecrans
FinProc
FinClasse
Programme obj11
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
211
// Appel explicite du destructeur de A
super.~A()
Fin
FinClasse
Programme obj11
Var
p_o1 :pointeur sur B
Début
p_o1←nouveau B // appel implicite au constructeur
...
Libérer p_o1 // appel implicite au destructeur
Fin
3. Les membres statiques
a. Attributs
Quand vous créez une instance de classe (un objet), chaque objet résultant dispose de son propre espace mémoire
et chaque attribut donné dispose donc de sa propre valeur totalement indépendante de celle du même attribut d’un
autre objet.
Pourtant il peut y avoir des cas où vous voudrez partager un attribut commun à tous les objets de ce type de classe.
Le cas d’école est celui où vous voulez connaître le nombre de fois où la classe a été instanciée. Dans le cas de la
classe Ecran, vous voudriez par exemple savoir combien d’objets de type Ecran ont été créés.
Pour ça, l’attribut doit être commun à tous les objets, et chaque objet doit pouvoir modifier la valeur de cet attribut,
valeur qui sera ensuite la même pour tous les objets. C’est le rôle de l’attribut statique.
Un attribut statique est un attribut qui n’est créé qu’en un seul exemplaire et qui est commun à tous les objets de
la classe.
Vous le déclarez comme n’importe quel attribut, sauf que vous lui rajoutez le motclé « statique » après son type.
L’attribut statique peut être privé ou public. Il peut être important d’initialiser une valeur par défaut pour un attribut
statique.
Classe Ecran
attributs privés
nb_ecrans←0 :entier statique
...
FinClasse
Plutôt que d’utiliser this pour y accéder, vous utilisez le nom de la classe ellemême, tant depuis l’extérieur de l’objet
(si l’attribut est public) que de l’intérieur. L’exemple suivant montre les possibilités associées avec deux objets : le
constructeur rajoute 1, le destructeur soustrait 1. Les étapes intermédiaires affichent l’état de l’attribut statique
nb_ecrans.
Classe Ecran
attributs publics
nb_ecrans←0 :entier statique
...
méthodes publiques
Constructeur Ecran()
Début
nb_ecrans←nb_ecran+1
Fin
Destructeur ~Ecran()
Début
nb_ecrans←nb_ecran-1
Fin
Procédure nbEcrans()
Début
Afficher nb_ecrans
FinProc
FinClasse
Programme obj11
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
211
