Next: La création d'instances Up: Classes Previous: Types & Classes

Les objets Class

Une définition de classe contient des informations diverses, essentiellement sur les instances de la classe:

Cette information est compilée et stockée dans des structure de données, et mise à disposition du noyau d'exécution. Le compilateur crée un seul objet pour représenter la classe. Cet objet a accès à toutes les informations pertinentes sur la classe, soit essentiellement, le type des variables d'instance, et la possibilité de créer de nouvelles instances conformes à la description.

Bien qu'un objet classe contiennent le prototype des instances, il n'est pas lui même instance de la classe. Il n'a pas de variables d'instances propre. Par contre des méthodes peuvent être définies spécifiquement pour cet objet (méthodes de classe, a opposer aux méthodes d'instances). Un objet classe hérites des méthodes des classes définies dans sa généalogie, comme les instances héritent des variables d'instance de la généalogie.

Le nom de classe est utilisé comme receveur dans un message envoyé à l'objet class. Dans l'exemple suivant la classe Matrix renvoi sont numéro de version en utilisant une méthode héritée de Object:

int quelle =[Matrix version];

Tous les objets class sont de type Class. Dans l'exemple suivant la méthode class retourne la classe de l'objet receveur:

Class classeDeMonObjet = [monObject class];

Comme les autres objets, les objets Class peuvent être manipulés par des variables de type id:

id laClasse = [monObject class];

Les objets de type Class sont ainsi des objets à part entière, qui peuvent être typés dynamiquement et qui peuvent recevoir des messages et hériter des méthodes d'autres classes. Il sont spéciaux en ce qu'ils sont construit par le compilateur, n'ont pas de structures de données associées (a part celle définie dans la classe Class) et sont des agents capables de produire des instances pendant l'exécution.

Remarque: Le compilateur fabrique pour chaque objet de type Class un "objet métaclasse". Cet objet décrit la classe comme les classes décrivent leurs instances. Mais ces "métaclasse" ne sont manipulées que par le noyau d'exécution (a l'inverse d'autres langages ou elle sont utilisables).

Next: La création d'instances Up: Classes Previous: Types & Classes

Dominique REVUZ
Vendredi 21 février 1997 17:27:12
Une Bug Un mail Merci