01-点语法

本文介绍了点语法在编程中的应用及其本质,即通过点语法实现set和get方法的调用,并探讨了如何避免在set和get方法中使用点语法导致的死循环问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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;

}

转载于:https://www.cnblogs.com/xdl745464047/p/4000940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值