方法分为两种
1.对象方法:-减号开头
- (void)test;
1>只能由对象来调用
2>对象方法中能访问当前对象的成员变量(实例变量)
2.类方法是以+开头
+ (void) test;
1>只能由类(名)来调用
2>类方法中不能访问成员变量(实例变量)
类方法的好处和使用场合
1>不依赖于对象,执行效率高
2>能用类方法尽量使用类方法
3>使用场合:当方法内部不需要使用到成员变量时,就可以改为类的方法
对象方法和类方法可以同名
设置test的类方法和对象方法
#import <Foundation/Foundation.h>
@interface Person : NSObject
类方法都是以+开头
+(void)test;
对象方法都以-开头
-(void)test;
@end
@implementation Person
-(void)test
{
}
+(void)test
{
}
@end
死循环:
对象方法的死循环
-(void)test
{
[Person test]; // 会引发死循环
}
类方法的死循环
+(void)test
{
[Person test]; // 会引发死循环
}
OC弱语法:有方法声明没有方法实现编译也可以通过
OC实在运行过程中才会检测对象有没有实现相应的方法(在编译连接中只会有警告)
不声明也不会有问题且只能在main函数前编译器仅仅会有警告可是开发中并不使用