一.对象方法和函数的区别
对象方法:1.对象方法都是以减号“- ”开头
2.对象方法的声明必须@interface和@end之间
3.对象方法的实现必须写在@implementation和@end之间
4.对象方法只能有对象来调用
例子:
#import <Foundation/Foundation.h>
@interface Person :NSObject
{
@public
int age; //成员变量
}
-(void) test; //对象方法声明
@end
@implementation Person
-(void) test //对象方法实现
{
NSLog(@"人的年龄");
}
@end
int main ()
{
Person *p =[Person new];
[p test]; //调用对象方法
return 0;
}
程序结果是:人的年龄.
函数:1.函数能写在文件中的任意位置,函数归文件所有(函数写在主函数前就不用声明,写在主函数的后面就要在主函数前面声明一下)
2.函数调用不依赖对象(函数的调用时,调用函数的名字就可以了)
3.函数内部不能直接通过成员变量名来访问某个对象的成员变量
如:某的对象有个成员变量age
void test()
{
prinef("人的年龄是: %d",age); //这个函数里的age不能通过成员变量名来访问某个对象的成员变量
}
以上的程序是错误的
二.方法的使用
在OC中方法分为两种,一种是对象方法,另外一种是类方法
类方法 : 1.加号“+”开头
2.只能类名来调用
3.类方法不能访问成员变量
例子:
+(void) printClassName
{
NSLog(@"这个类叫做Person");
}
比如你创建了Person这个类, 调用以上的方法就用 [Person printClassName]; (类方法只能用类调用)
类方法使用好处和使用的场合
1.不依赖于对象,执行的效率高
2.能用类方法尽量用类方法
3.场合:当方法内部都不需要使用到成员变量时,就可以改为类方法
允许类方法和对象方法同名:
-(void) test , +(void) test 这样是可以的.
对象方法于类方法的区别:
对象方法:1.减号“-”开头
2.只能有对象来调用
3.对象方法能访问当前的成员变量
如:某的对象有个成员变量age
- void test()
{
prinef("人的年龄是: %d",age); //这个对象方法实现能通过成员变量名来访问对象的成员变量
}
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------