关于C#:差异类和实例方法

Difference Class and Instance Methods

类方法和实例方法的区别是什么?为什么我们需要分开?有人能解释一下吗?

类和实例方法

?实例响应实例方法

1
2
3
 - (id)init;
 - (float)height;
 - (void)walk;

?类响应类方法

1
2
3
 + (id)alloc;
 + (id)person;
 + (Person *)sharedPerson;

泰穆尔


实例方法仅在类的实例上可用,而类方法不需要实例,但在类上可用。

类方法用+表示,而实例方法在返回类型之前用-表示。

NSObject为例。NSObject有一个名为+ (id)alloc的类方法。alloc方法用于分配类的实例。显然,alloc必须是一个类方法,因为如果它是一个实例方法,您将从何处获取"根"实例?

另一方面,- (id)init是一个实例方法,因为它初始化实例的状态。


一个例子:

Human->ClassYou->Instance

Human可以是extinguishYou不能。You可以是drink a CokeHuman不能。

Instance方法只适用于个人。

而对于具有相同可识别特征的整个群体,则采用Class方法。

它是一个和多个,个体和整个社会的区别。

[SomeClass alloc]意味着这个阶级的一个新实例诞生了。就像你出生一样,

init适用于Instance,就像你的父母给你一个名字,喂你,送你上学一样,所以你有能力生活在这个社会中。


  • 使用静态变量
  • 用"+"符号表示
  • 可以直接用类调用,而不创建类的实例
  • Self-in-Class方法表示类本身,而Self-in-Instance方法表示类的特定实例。