01-点语法

 

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、点语法的本质

  stu.age不是访问成员变量,而是点语法(方法调用)。

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: 24];               =>   girl.age = 24;

  [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;

}

posted @ 2014-09-29 20:20  微雨独行  阅读(261)  评论(0编辑  收藏  举报
1 2