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 造成死循环
|