Next: Les variables de classe Up: Classes Previous: Les objets Class

La création d'instances

Une des fonctions principales des classes est de fabriquer de nouvelles instances. Le code suivant dit à l'objet classe Matrix de fabriquer une nouvelle instance et de l'assigner à la variable maMatrix:
id maMatrix; maMatrix = [Matrix alloc]; La méthode alloc alloue dynamiquement de la mémoire pour les variables d'instance du nouvel objet et les initialise toutes à zéro (toutes sauf la variable isa qui connecte la nouvelle instance à sa classe qui est initialisé par alloc). Pour qu'un objet soit utilisable il est souvent nécessaire qu'il soit plus subtilement initialisé, que linitialisation réalisée par alloc, c'est le rôle de la méthode init. L'initialisation vient en générale juste après l'allocation comme dans le code suivant:
maMatrix = [[Matrix alloc] init];
Cette ligne de code, ou une toute proche, sera nécessaire avant que maMatrix puisse répondre à tous les messages que nous avons décrit plus haut. La méthode alloc retourne une nouvelle instance de la classe, la méthode init retourne l'instance initialisée. Tout objet class à une méthode comme alloc qui lui permet de produire de nouvelles instances. Toute instance a au moins une méthode comme init qui permet de l'initialisée. Si l'ont pense qu'une classe est la réalisation d'un type abstrait, la méthode init permet de placer l'instance dans un état conforme au axiomes du type abstrait. Les méthodes d'initialisation ont souvent des arguments qui permettent de spécifier les initialisations a réalisées, par exemple pour une Matrix la méthode initFrame:mode:cellClass:numRows:numColumns: est la plus souvent utilisée. Elles commencent toutes par "init".

Par convention tous les identificateurs de classe (Matrix) commence par une Majuscule, et les instances par une minuscule (maMatrix).



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