一、方法(函数)的声明与实现
例1:
声明:
-(void)report; //其中:-、+表示方法的类型:- 表示对象方法,+表示类方法。
//(void)表示返回值,比如void ,则返回空;
//若为(int),则需要return 某个数值;
实现:
-(void)report {
NSLog(@"- 号:report");
}
调用:
people *p1=[[people alloc]init];
[p1 report]; //p1 为对象名
输出结果:
- 号:report
结论:(-)对象方法是需要用对象名来进行调用的。
例2:
声明:
+(void)report2;
其中:-、+表示方法的类型:- 表示对象方法,+表示类方法。
实现:
+(void)report2 {
NSLog(@"+ 号:report2");
}
调用:
[people report2]; //people 为类名
输出结果:
+ 号:report2
结论:(+)类方法是需要用类名来进行调用的。
二、方法(函数)的调用:
方法(函数)的调用,用“[ ]”表示。
我们知道:[[people alloc] init];
这是常见的初始化方法,这里就涉及到了两个方法的调用。
其中alloc 方法为类方法;而[people alloc] 则为一个对象,也就是说 init 方法是 对象方法。
三、在对象方法和类方法之间的互相调用:
(1)在对象方法中调用类方法:
-(void)report {
NSLog(@"- 号:report");
[people report];
}
(2)在类方法中调用对象方法:
+(void)report2 {
NSLog(@"+ 号:report2");
[[people alloc]report];先进行实例化,然后直接调用report方法。
}
+(void)report2 {
NSLog(@"+ 号:report2");
[[people alloc]report];先进行实例化,然后直接调用report方法。
_peopleName=@"张三";
}
总结:对象方法和类方法可以互相调用,当然需要类名和实例化变量,类方法不能调用成员变量。