把类定义在其他类里面,定义在内部的类即为嵌套类,包含嵌套类的类称为外部类。定义的方式不一样,又分为嵌套类、内部类。此时的内部类、嵌套类相当于外部类成员,也可以使用public、internal、protected、private来修饰。
嵌套类
嵌套类的定义
当一个类在另一个类中声明时,它被称为嵌套类。嵌套类相当于java的静态内部类(static class)。但是kotlin完全取消了static关键字,所以kotlin类中除去嵌套类,其余成员均为非静态成员。
class OuterClass {
....
class NestedClass {
...
}
}
嵌套类的使用
外部类不能直接访问嵌套类的,属性跟方法,需创建嵌套类对象,通过对象调用嵌套类成员。
例:
class OuterClass {
val outerParam: String = "外部类属性"
fun outerFun1() {
println("执行外部类方法 outerFun1")
//外部类不能直接访问嵌套类的,属性跟方法
//println(nestedParam) //错误
//nestedFun1() //错误
//需创建嵌套类对象,通过对象调用嵌套类成员。
val nestedClass: NestedClass = NestedClass()
println(nestedClass.nestedParam