Object-C 类的点语法

来源:互联网 发布:mac dts 转 wav 编辑:程序博客网 时间:2024/06/06 20:35

本文是观看了 @M了个J 视频  整理的一些学习资料   在这里感谢大神[(@M了个J) 大神博客链接的地址为  http://www.cnblogs.com/mjios/] 在这里谢谢大神,同时也谢谢那些无私奉献知识的人   如果说我比别人看得更远些,那是因为我站在了巨人的肩上 --牛顿

类的.h中  方法名( :号也是方法名的一部分)

- (void)setAge:(int)newAge; //方法名是setAge:

-(int)age; //方法名是age

-(void)setAge:(int)newAge andNo:(int)no; //方法名是setAge:andNo:


类的创建、点语法的使用

Person * person = [ [Person alloc] init];

person.age = 10; //相当于[person setAge:10]   //当. 在等号的左边时 编译器自动检查调用set方法 编译器默认执行的set方法名为setAge

int age = person.age; //等效于[person age];    //当. 在等号的右边时 编译器自动检查调用get方法  编译器默认执行的get方法名为age

因此person.age访问的是成员变量的set方法并不是该成员变量  所以OC中通常把成员变量声明为_变量名(如_age) 这样我们就可以很清楚的知道person.age 不是访问成员变量  因为我们的成员变量名为_age   

-(void)setAge:(int)newAge{

_age =newAge;

//self.age = newAge; //不可以这样写  死循环  setAge调用setAge  相当于 [self setAge:newAge] 无限调用set方法

}

//get方法  OC中  成员变量的get方法名与成员变量名相同

- (int)age{

NSLog(@"调用了age 方法: %i",age);

return _age;

//return self.age; //不可以这样写  死循环  age调用age  相当于 [self  age] 无限调用get方法

}


0 0