Kotlin 内部类

Kotlin 内部类,通过嵌套类的学习,我们会发现在嵌套类中是无法访问外部类中成员的,这样定义的嵌套类在实际开发中没有任何意义,为此,Kotlin中提供了内部类,内部类只需要在嵌套类的基础上添加一个“inner”关键字即可,将其标识为内部类。

接下来稍微修改嵌套类代码来定义一个内部类,并调用内部类中的成员函数,具体代码如下所示。

package com.itheima.chapter04
class Outer {
    var name = " 酷客网"
    inner class Inner {
        fun sayHello() {
            println("Hello !我叫$name。")  //调用外部类的成员变量
        }
    }
}
fun main(args: Array<String>) {
   Outer().Inner().sayHello()   // 调用内部类的成员函数
}

运行结果:

Hello!我叫酷客网。

在上述代码中,在Inner类前边添加了一个inner关键字之后,Inner类就变成了一个内部类,在内部类的sayHello()方法中就可以访问外部类中的字段name。

当在main()方法中访问内部类中的成员时,首先需要实例化外部类,然后再实例化内部类,最终通过内部类对象调用成员函数,即“Outer().Inner().sayHello()”

Java中的嵌套类和内部类与Kotlin中的区别

  • 在Java中,将一个类定义在另一个类的内部,则称这个类为成员内部类,如果成员内部类加上static修饰,则是称为静态内部类。Java中成员内部类中可以访问外部类的所有成员。
  • 在Kotlin中,将一个类定义在另一个类的内部,不加任何修饰符,则这个类将被默认为是一个嵌套类,如果加上inner修饰,则是一个内部类。Kotlin中的内部类可以访问外部类中的变量,而嵌套类却不可以访问。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!