2010-07-14 4 views
4

Quelle est la différence entre les méthodes de classe et les méthodes d'instance. Pourquoi avons-nous besoin d'eux séparément? Quelqu'un peut-il expliquer s'il vous plaît?Méthodes de classe et d'instance de différence

classe et d'instance Méthodes

• Les instances répondent aux méthodes d'instance

- (id)init; 
- (float)height; 
- (void)walk; 

• Les classes répondent aux méthodes de classe

+ (id)alloc; 
+ (id)person; 
+ (Person *)sharedPerson; 

Taimur

+1

double possible de [Objective-C: classe vs Méthodes d'instance] (http://stackoverflow.com/questions/1053592/objective-c-class-vs-instance-methods) –

Répondre

6

Une méthode d'instance est disponible uniquement sur une instance de la classe, alors qu'une méthode de classe d n'a pas besoin d'une instance mais est disponible sur la classe. Les méthodes de classe sont désignées par + tandis que les méthodes d'instance sont signalées par - avant leur type de retour.

Prenons par exemple NSObject. NSObject a une méthode de classe nommée + (id)alloc. La méthode alloc est utilisée pour allouer une instance de la classe. Évidemment, alloc doit être une méthode de classe car si c'était une méthode d'instance, d'où obtiendriez-vous l'instance "root"? Par contre, - (id)init est une méthode d'instance car elle initialise l'état d'une instance.

+1

Bonne réponse, de clarifier avec un exemple du code inclus dans la question. Si vous avez demandé à la classe quelle hauteur elle était [Hauteur de la personne], elle n'a pas de réponse car une personne peut avoir n'importe quelle taille. Mais si vous demandez à une instance de dire [hauteur michael], elle peut répondre car j'aurais pu définir une hauteur pour cette instance spécifique (personne). – mbehan

5

Un exemple:

Human ->Class You ->Instance

Human pourrait extinguish, you ne peut pas. You pourrait drink a Coke, Human ne peut pas.

méthode

Instance est appliquée uniquement aux personnes,

Bien que la méthode Class est appliquée à l'ensemble du groupe avec les mêmes caractéristiques identifiables.

C'est la différence entre une et plusieurs, individuelle et toute la société.

[SomeClass alloc] signifie une nouvelle instance de la classe est né comme vous donne naissance,

init applique à un Instance, comme vos parents vous donnent un nom, vous nourrir et vous envoyer à l'école, de sorte que vous avoir des compétences pour vivre dans cette société.

0
  1. Utiliser les variables statiques
  2. Représentent par « + » symbole
  3. Peut-on appeler directement avec classe sans créer instance d'une classe
  4. auto dans la méthode de classe représentent classe elle-même mais l'auto en méthode d'instance représente que instance particulière d'une classe.
Questions connexes