对象方法
(1)对象方法以-开头如 -(void)xx;
(2)对象方法只能由对象来调用
(3)对象方法中可以访问当前对象的成员变量
(4)调用格式 [对象名 对象方法名];
类方法
(1)类方法以+开头 如+(void)put;
(2)类方法只能由类来调用
(3)类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间来存储类中的成员变量。
(4)调用格式:[类名 类方法名];
(5)类方法的好处和适用场合:不依赖于对象,执行效率更高; 能用类方法解决的问题,尽量使用类方法; 场合:当方法内部不需要使用到成员变量时,可以改为类方法。
1、类方法的优点:
1)节省内存空间
2)提高了效率
3)作为工具方法
2、类方法的易犯错误
1)在类方法中不能使用类的成员变量
3、对象方法中可以调用其他的对象方法
1)当前对象方法中创建对象,使用新创建的对象(可以是当前类的实例对象,也可以是其他类的实例对象)调用对象方法
2)self调用
3)对象作为方法的参数 传递过来,可以使用传递过来的对象调用方法
4、类方法
在类方法中可以调用其他类方法
1)可以直接使用本类类名,或其他类方法
2)self调用
3)可以调用 其他类的对象的方法(通过方法参数传递 或者在类方法类创建对象)
4)类方法不能调用自身,会造成死循环
5、匿名类的使用
1)可以访问实例变量(只能访问一次)。以后再访问实际上访问新的空间了
[Car new]-> _speed = 80;
NSLog(@"_speed = %d ",[Car new]->_speed); // 0
2)可以调用方法
[[Car new] stop];
6、常用 生成对象方法
[[Car alloc] init]; 等价于 [Car new]; 都是匿名对象
//使用alloc init 的方法调用 stop
[[[Car alloc] init] stop];