📅  最后修改于: 2023-12-03 14:43:42.546000             🧑  作者: Mango
在 Kotlin 中,嵌套类和内部类是两个不同的概念。
嵌套类(Nested Class)是一个被包含在另一个类中的类,并且没有持有包含它的外部类的引用。
class OuterClass {
// 外部类成员
class NestedClass {
// 嵌套类成员
}
}
使用嵌套类的语法:
val nestedClassInstance = OuterClass.NestedClass()
内部类(Inner Class)是一个被包含在另一个类中的类,但是它持有包含它的外部类的引用。
class OuterClass {
// 外部类成员
inner class InnerClass {
// 内部类成员
}
}
使用内部类的语法:
val innerClassInstance = OuterClass().InnerClass()
注意,内部类只能在有实例的情况下创建,而嵌套类可以直接使用。
class OuterClass(private val name: String) {
private val outerClassProperty = "OuterClassProperty"
class NestedClass {
fun printInfo() {
println("This is a nested class.")
}
}
inner class InnerClass {
fun printInfo() {
println("This is an inner class, its outer class name is ${name}, and its outer class property is ${outerClassProperty}.")
}
}
}
fun main() {
val nestedClassInstance = OuterClass.NestedClass()
val innerClassInstance = OuterClass("OuterClass").InnerClass()
nestedClassInstance.printInfo()
innerClassInstance.printInfo()
}
输出:
This is a nested class.
This is an inner class, its outer class name is OuterClass, and its outer class property is OuterClassProperty.
此示例演示了嵌套类和内部类的使用。NestedClass
可以通过外部类来访问,而 InnerClass
则需要实例化外部类对象后才能访问。