¿Cuál es la diferencia entre los métodos de clase y los métodos de instancia. ¿Por qué los necesitamos por separado? ¿Alguien por favor puede explicar?
Métodos de clase e instancia
• Las instancias responden a los métodos de instancia.
- (id)init;
- (float)height;
- (void)walk;
• Las clases responden a los métodos de clase.
+ (id)alloc;
+ (id)person;
+ (Person *)sharedPerson;
Taimur
Respuestas
6 para la respuesta № 1Un método de instancia solo está disponible en una instancia de la clase, mientras que un método de clase no necesita una instancia, pero está disponible en la clase.
Los métodos de clase están denotados por +
mientras que los métodos de instancia se denotan por una -
antes de su tipo de retorno.
Echemos NSObject
por ejemplo. NSObject
tiene un método de clase llamado + (id)alloc
. El método de asignación se utiliza para asignar una instancia de la clase. Obviamente, la asignación debe ser un método de clase porque si fuera un método de instancia, ¿de dónde obtendría la instancia "raíz"?
Por otra parte - (id)init
es un método de instancia porque inicializa el estado de una instancia.
5 para la respuesta № 2
Un ejemplo:
Human
-> Class
You
-> Instance
Human
podría extinguish
, you
no poder.
You
podría drink a Coke
, Human
no poder.
Instance
El método solo se aplica a individuos,
Mientras Class
El método se aplica a todo el grupo con las mismas características identificables.
Es la diferencia entre uno y muchos, individual y toda la sociedad.
[SomeClass alloc]
Significa que nace una nueva instancia de la clase. así como tú has dado a luz,
init
se aplica a un Instance
, al igual que tus padres te dan un nombre, te dan de comer y te envían a la escuela, para que tengas habilidades para vivir en esta sociedad.
0 para la respuesta № 3
- Utilizar variables estáticas
- Representar con el símbolo "+"
- Se puede llamar directamente con la clase sin crear la instancia de una clase
- El método self en clase representa la clase en sí mismo, sin embargo el método self en instancia representa esa instancia particular de una clase.