文章目录
嵌套类
在类的内部可以定义其他的类,这是类结构上的嵌套(Nested)。
kt
class Container {
val name = "Container"
class NestedClass {
fun getter() {
// 此时无法访问外部类的成员
// name
}
}
}
Note:接口也能嵌套。
内部类
内部类同样位于类内部,使用inner
修饰。除了结构上嵌套外,内部类还能访问外部类的成员。
kt
class Container {
val name = "Container"
inner class InnerClass {
fun getter() {
// 此时可以访问外部类的成员
name
}
}
}
内部类只能使用外部类的对象调用实例化(普通嵌套类无此限制):
kt
fun main() {
// Container.InnerClass() 不能使用
Container().InnerClass()
}