类方法和实例方法有什么区别。为什么我们需要分开使用它们? 有人可以解释一下吗?差异类和实例方法
类和实例方法
•实例与实例方法应对
- (id)init;
- (float)height;
- (void)walk;
•班类方法
+ (id)alloc;
+ (id)person;
+ (Person *)sharedPerson;
回应泰穆尔
类方法和实例方法有什么区别。为什么我们需要分开使用它们? 有人可以解释一下吗?差异类和实例方法
类和实例方法
•实例与实例方法应对
- (id)init;
- (float)height;
- (void)walk;
•班类方法
+ (id)alloc;
+ (id)person;
+ (Person *)sharedPerson;
回应泰穆尔
实例方法仅适用于一个类的实例,而一个类的方法d不需要实例,但可以在课程中使用。
类别方法由+
表示,而实例方法在其返回类型之前由-
表示。
举个例子,我们以NSObject
为例。 NSObject
有一个名为+ (id)alloc
的类方法。 alloc方法用于分配类的一个实例。很明显,alloc必须是一个类方法,因为如果它是一个实例方法,那么你会从哪里得到“root”实例?
另一方面- (id)init
是一个实例方法,因为它初始化一个实例的状态。
好的答案,澄清以问题中包含的代码为例。如果你问班级什么样的高度[人身高],它不会有答案,因为一个人可以是任何高度。但是如果你问一个实例说[迈克尔高度],它可以回应,因为我可以为该特定实例(人)设置一个高度。 – mbehan 2010-07-14 10:39:32
一个例子:
Human
- >Class
You
- >Instance
Human
所能extinguish
,you
不能。 You
可能drink a Coke
,Human
不能。虽然被施加到整个组具有相同识别的特征Class
方法
Instance
方法仅适用于个人,
。
这是个人与整个社会的差异。
[SomeClass alloc]
意味着类的新实例出生 就像你生完孩子,
init
适用于Instance
,就像你的父母给你的名字,养活你,送你去上学,所以你有能力生活在这个社会。
可能重复的[Objective-C:类与实例方法?](http://stackoverflow.com/questions/1053592/objective-c-class-vs-instance-methods) – 2010-07-24 04:22:05