无题2

作者: helloW_Coder | 来源:发表于2018-12-22 17:32 被阅读0次

    A

        1.代表任意的对象类型:

    instancetype->只能作为返回值

    id->均可

    方法重写:本来有的方法 重新定义方法的实现过程

    写init方法的时候 系统提示-->说明这个方法本来就有-->继承父类的方法

    如果重写了父类的方法-->对象调用方法时会执行复写后的方法

    如果复写方法时,想保证该方法原来的功能,可以在方法中调用父类super的该方法

    main.m                    Person类                                        NSObject

    创建Person类 

    调用init方法  --->  (1) init方法(复写)[super init]

                                  (2)若没有复写 -------------------->   init

                        person <----return  <-------------产生  id

    复写与否都要父类方法的功能创建对象

    -(id)initWithIsBoy:(Bool)isBoy{

    //条件判断保证对象已经创建出来再使用  防止没人有名的情况

    if( self = [super init] ){

    _isBoy = isBoy;

    }

    return self;

    }

    B

    property产物:1.下划线属性 2.set方法 3. get方法

    @interface    @end  ---> .h文件--->  类的声明

    @implement   @end ---->.m 文件--->  类的实现

    @property(nonatomic,assign\copy\strong)属性类型 属性名(不需要自定义下划线)

    1.nonatomic:多线程下,不存在线程保护(速度快) 推荐使用

             atomic:多线程下,存在线程保护(速度慢) 

    2.assign:基本数据类型

      copy:字符串

    strong(retain) : 除了字符串以外的其他对象类型  最好用strong

    3.readwrite:可读写(默认)  set get

       readonly:只读  get

    4.属性名称不需要加下划线(自带)

    C

    点语法

    stu.age = 10;  展开为 [stu  setAge:10];

    int age = stu.age;  展开为 int age = [stu age];

    当点语法使用在"="赋值符号左侧的时候,点语法会被展开为set方法的调用,

    其他情况(等号右侧,直接使用) 为点语法展开为get方法的调用.

    2.点语法的 本质 是 方法的调用,而不是访问成员变量,即转换成相对应的set和get方法的调用,如果没有set和get方法,则不能使用点语法.

    3.不要在set和get方法中使用本属性的点语法.

    相关文章

      网友评论

          本文标题:无题2

          本文链接:https://www.haomeiwen.com/subject/vqtwkqtx.html