本文是观看了 @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方法
}