对象方法和类方法
2017-02-22 本文已影响0人
懵圈de果果
-对象方法
+类方法
调用对象方法必须先创建对象,在通过对象来调用。
类方法不依赖对象,使用对象名直接调用。
类方法特点:
1.节约空间,因为调用类方法不需要创建对象
2.提高效率
类方法不可以直接访问属性
属性是在对象创建的时候,跟着对象一起创建在对象之中的
类第一次被访问的时候,会做类加载,把类的代码存储在代码段中
但是我们可以在类方法中创建一个对象,访问这个对象的属性是没问题的。
在类方法当中也不可以使用self直接调用当前类的其他对象方法。
在对象方法中可以调用类方法
什么时候可以将方法定义为类方法?
1.如果方法不需要直接访问属性,也不需要直接调用其他对象方法
类方法的规范
1.如果我们写一个类,那么就要求为这个类提供1个和类名同名的类方法,这个方法创建1个最纯洁的对象返回。
如Person类
+ (Person
*)person
{
Person *p1 = [Person new];
}
所以创建对象时可以用
Person *p1 =[Person new];
也可以用
Person *p1 =[Person person];