A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chuanzhang 中级黑马   /  2016-3-16 02:03  /  755 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

2 个回复

倒序浏览
总结的很好,赞一个
回复 使用道具 举报
谢谢分享,点语法我也不是,总是和C语言混淆!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马