oc-24-点语法

简介:
/**
  点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时,
  编译器会自动展开成相应的方法。切记点语法的本质是转换成相应的set和get方法,
  如果没有set和get方法,则不能使用点语法。
 
 点语法本质 就是set或者get方法.
 1.遇见 s.age = 10;形式,会自动展开为:[s setAge:10];
 2.遇见 int a = s.age;形式,会自动展开为:int a = [s age];
 
 点语法注意事项:
 1.用在set方法中:
 - (void)setAge:(int)age
 {
   _age = age;
   self->_age = age;
   self.age = age;// 死循环会展开为:[self setAge:age];
 }
 2.在get方法中:
 - (int)age
 {
   return _age;
   return self->_age;
   return self.age;// 死循环会展开为:[self age];
 }
 
 注意点:什么时候会生成set方法什么时候会生成get方法?
 如果有赋值运算符,生成set方法,否则,生成get方法.
 
 3)OC点语法的本质是方法调用,不是直接访问成员变量。至于这个点语法代表的是get方法还是 set方法,那就取决于你是取值还是设值(也可以理解为点语法是在“=”的左侧还是右侧。左侧:如stu.age=....这就是调用set方法,右侧 ... = stu.age这就是调用get方法),取值就是get方法,设值就是set方法。
 
 */
#import <Foundation/Foundation.h>
#import "Student.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        Student *s = [Student new];
        
//        [s setAge11:10];
        s.age11 = 10;//跟- (void)setAge11:(int)age的setAge11匹配

//        int aAge = [s age];
        int aAge = s.age;
        
        NSLog(@"%d",aAge);
        
    }
    return 0;
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5311128.html,如需转载请自行联系原作者

相关文章
|
9月前
|
缓存 Java iOS开发
OC中动态方法解析
OC中动态方法解析
32 1
|
Java API
JavaDoc
JavaDoc命令是用来生成自己API文档的,将写好的程序放在生成的文档中 参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况 package com.wyd.base
JavaDoc
|
Oracle Java 关系型数据库
无法使用 javadoc 等命令?
谈到 Java 就离不开 JRE(Java Runtime Environment),JDK(Java Development Kit) 中包含了 JRE 和 JVM(Java Virtual Machine),所以我们一般直接安装 JDK,安装 JDK 首先肯定是去Oracle官网下载适合自己的开发版本,然后将 JDK 安装到自定义位置。
无法使用 javadoc 等命令?
|
Java Android开发
javaDOC生成
javaDOC生成
93 0
|
编译器 C语言 Swift
|
Java C语言 iOS开发