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