黑马程序员技术交流社区
标题: 关于点语法的总结 [打印本页]
作者: chuanzhang 时间: 2016-3-16 02:03
标题: 关于点语法的总结
1> 定义: 编译器的特性: 编译器遇到点语法,会自动的帮我们把
点语法用getter或者setter方法去替换,替换的过程是在编
译的过程中完成的
2> 格式 : 对象.去掉下划线的实例变量名// p.name = @"赵日
天";==[p setName:@"赵日天"];完全等价
3> 使用: 点语法使用的过程中,如果出现了等号的左侧(有赋值表
达式的情况)此时把点语法替换成set方法, 如果出现在
等号的右侧(或者没有存在赋值的情况)此时把点语法替
换成get方法
4>注: 替换get /set 方法是替换不是直接访问成员变量
直接访问成员变量是 p->name;(并且要在成员变量前加
@public)
5> !!!!!!!!!点语法必须有get /set 方法;!!!!!!!
int main(){
//创建对象
Person *p=[Person new];
p.name=@"良辰";==[p setName:@"良辰"];
NSString *k=p.name; ==[p getName];
//打印时必须定义一个变量接收p.name. 如果直接打印则
用p.name 否则 打印出 <类名:地址>==<Person:地址>
}
6> 点语法注意事项
(1) 如果使用点语法,必须保证类中有set 和 get 方法
(2) 点语法的本质是方法的调用,而不是访问成员变量,当使用
点语法时编译器自动展开成相应的方法.
(3) 点语法中使用self 造成死循环
作者: 简单的爱 时间: 2016-3-16 09:35
总结的很好,赞一个
作者: 为梦想再启程 时间: 2016-3-17 08:13
谢谢分享,点语法我也不是,总是和C语言混淆!!!
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |