第八章 Kotlin之This,inner关键字

本节涉及的知识点:

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

1、this表达式

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

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

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

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

第八章 Kotlin之This,inner关键字_第1张图片

运行结果:

第八章 Kotlin之This,inner关键字_第2张图片

2、inner关键字

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

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

第八章 Kotlin之This,inner关键字_第3张图片

调用代码:

第八章 Kotlin之This,inner关键字_第4张图片

代码说明:

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

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

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

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

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

感谢浏览!

你可能感兴趣的:(第八章 Kotlin之This,inner关键字)