从零开始学习Kotlin

第八章 Kotlin之This,inner关键字

2017-09-11  本文已影响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中实现方式,在内部类中定义外部类弱引用,通过构造方法传入外部类对象;

感谢浏览!

上一篇 下一篇

猜你喜欢

热点阅读