———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
1、利用点语法替换set方法和get方法
1> 方法调用
Student *student1 = [Student new];
[stu setAge: 20]; //调用set方法
int age = [stu age]; //调用get方法
2> 点语法
stu.age = 20;
int age = stu.age;
2、点语法的本质
1> 点语法的本质还是方法调用(调用set方法和get方法)。
2> 当使用点语法时,编译器会自动展开成相应地方法
stu.age = 10; 展开为 [stu setAge: 10];
int age = stu.age; 展开为 int age = [stu age];
3> 在使用点语法的时候:在 = 号左边使用点语法时,调用的是set方法;其他的地方使用都是调用get方法。
4> 使用点语法的时候,. 后面的名称是对应的成员变量去掉下划线后的部分。
5>点语法只能调用set get 方法
再看几个例子,加深理解:
[girl setName: @"玲玲"]; => girl.name = @"玲玲";
[girl setAge: 20]; => girl.age = 20;
[girl setHeight: 165]; => girl.height = 165;
3、点语法死循环注意
1>调用set方法,
- (void)setAge:(int)age
{
NSLog(@"setAge:");
//会引发死循环
//self.age = age; //[self setAge:age];
//正确地写法
_age = age;
}
2> 调用get方法
- (int)age
{
//会引发死循环
//return self.age;//[self age];
//正确写法
return _age;
}