Класс Различия и Методы Экземпляра - PullRequest
5 голосов
/ 14 июля 2010

В чем разница между методами класса и методами экземпляра.Почему они нужны нам отдельно?Может кто-нибудь объяснить, пожалуйста?

Методы класса и экземпляра

• Экземпляры реагируют на методы экземпляра

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

• Классы отвечают на методы класса

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

Теймур

Ответы [ 3 ]

6 голосов
/ 14 июля 2010

Метод экземпляра доступен только для экземпляра класса, в то время как метод класса не нуждается в экземпляре, но доступен в классе.

Методы класса обозначаются +, в то время как методы экземпляра обозначаются - перед их типом возврата.

Давайте возьмем NSObject например. NSObject имеет метод класса с именем + (id)alloc. Метод alloc используется для выделения экземпляра класса. Очевидно, alloc должен быть методом класса, потому что если бы это был метод экземпляра, откуда бы вы взяли «корневой» экземпляр?

С другой стороны, - (id)init является методом экземпляра, поскольку он инициализирует состояние экземпляра.

5 голосов
/ 24 июля 2010

Пример:

Human -> Class You -> Instance

Human может extinguish, you не может.You может drink a Coke, Human не может.

Instance метод применяется только к отдельным лицам,

В то время как метод Class применяется ко всей группе с одинаковой идентифицируемой

Это разница между одним и многими, индивидуумом и всем обществом.

[SomeClass alloc] означает, что новый экземпляр класса рождается точно так же, как вы рождаетесь,

init относится к Instance, как ваши родители дают вам имя, кормят вас и отправляют в школу, чтобы у вас были навыки, чтобы жить в этом обществе.

0 голосов
/ 05 ноября 2014
  1. Использование статических переменных
  2. Представляется символом '+'
  3. Может вызываться напрямую с классом без создания экземпляра класса
  4. Представление Self в классе представляетСам класс, однако сам в методе экземпляра представляет тот конкретный экземпляр класса.
...