美文网首页从零开始学习Kotlin
第八章 Kotlin之This,inner关键字

第八章 Kotlin之This,inner关键字

作者: 红尘丶 | 来源:发表于2017-09-11 17:25 被阅读33次

    本节涉及的知识点:

    this表达式,inner关键字,扩展函数,标签,lambda表达式,属性的方法定义。重点理解this与inner,其他知识点后续章节详细阐述。

    1、this表达式

    在kotlin中,为了表示当前接收者的对象,我们可以使用this关键字(表达式):

    类成员函数中:this指该类的当前对象;

    在扩展函数或者带接收者的字面数中:this指在点左侧传递的接收者参数;

    如果this没有限定符,默认指包含它的最内层作用域,如果需要引用其他作用域中的this,需要使用标签限定符(this@label,label是一个标签)。

    运行结果:

    2、inner关键字

    kotlin中支持类的嵌套(内部类),不过和java中不一样(java中包含一个指向外部类的对象的引用),kotlin中所有的内部类默认为静态的,这样很好的减少了内存泄漏问题。如果需要在内部类引用外部类的对象,可以使用inner声明内部类,使内部类变为非静态的,通过this@外部类名,指向外部类。

    通过以下代码更好的理解上述文字描述:

    调用代码:

    代码说明:

    1、inner修饰的内部类可理解为java中的非静态内部类,调用方式:

    外部类().内部类().方法();

    2、kotlin内部类默认为静态的,理解为java中使用static修饰的内部类,调用方式:

    外部类.内部类().方法();

    3、如果需要在静态内部类中使用外部类,可参考java中实现方式,在内部类中定义外部类弱引用,通过构造方法传入外部类对象;

    感谢浏览!

    相关文章

      网友评论

        本文标题:第八章 Kotlin之This,inner关键字

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