美文网首页
点语法与self关键字

点语法与self关键字

作者: SimpleSJ | 来源:发表于2018-11-02 15:54 被阅读0次

    1.点语法

    • 如果给属性提供了getter和setter方法, 那么访问属性就又多了一种访问方式 , 点语法
    • 点语法是一个编译器的特性, 会在程序翻译成二进制的时候将.语法自动转换为setter和getter方法
    • 其实点语法的本质还是方法调用
    • 当使用点语法时,编译器会自动展开成相应的方法


      image.png
    • 当点语法使用在 “=“赋值符号左侧的时候,点语法会被展开为setter方法的调用,其他情况(等号右侧、直接使用)为点语法展开为getter方法的调用

    注意点

    • 点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法调用。

    • 切记点语法的本质是转换成相应的对setter和getter方法调用,如果没有set和get方法,则不能使用点语法。

    • 不要在getter 与 setter方法中使用本属性的点语法

    2.self关键字

    • 谁调用self所在的方法,那么self就是谁

    • self在类方法中,就是这个类的类对象,全局只有一个,可通过self调用本类中的其他类方法,但是不能通过self来调用对象方法或访问成员变量

    • self在对象方法中,就是调用这个方法的那个对象, 可以通过self调用本类中其他的对象方法,访问成员变量,但不能通过self调用本类的类方法。

    • 通过self调用方法的格式:[self 方法名];

    • 通过self访问成员变量格式:self->成员变量名

    注意点

    • 同时有对象方法和类方法存在的时候,self不会调错
    • self只能在方法中使用;不要使用self来调用函数,也不可以在函数内部使用self;
    • 使用self调用本方法,导致死循环调用。

    相关文章

      网友评论

          本文标题:点语法与self关键字

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