Kotlin嵌套类和内部类

本文概述

  • Kotlin嵌套课程
  • 科特林内层阶级
Kotlin嵌套课程嵌套类是在另一个类内部创建的类。在Kotlin中, 嵌套类默认情况下是静态的, 因此无需创建类的对象即可访问其数据成员和成员函数。嵌套类无法访问外部类的数据成员。
class outerClass{//outer class codeclass nestedClass{//nested class code}}

Kotlin嵌套类示例
class outerClass{private var name: String = "Ashu"class nestedClass{var description: String = "code inside nested class"private var id: Int = 101fun foo(){//print("name is ${name}") // cannot access the outer class memberprintln("Id is ${id}")}}}fun main(args: Array< String> ){// nested class must be initializeprintln(outerClass.nestedClass().description) // accessing propertyvar obj = outerClass.nestedClass() // object creationobj.foo() // access member function}

输出:
code inside nested classId is 101

科特林内层阶级内部类是在另一个类中使用关键字inner创建的类。换句话说, 我们可以说标记为“内部”的嵌套类称为内部类。
内部类不能在接口内部或非内部嵌套类中声明。
class outerClass{//outer class codeinner class innerClass{//nested class code}}

内部类优于嵌套类的优点是, 即使它是私有的, 它也能够访问外部类的成员。内部类保留对外部类对象的引用。
科特林内层阶级的例子
class outerClass{privatevar name: String = "Ashu"inner classinnerClass{var description: String = "code inside inner class"private var id: Int = 101fun foo(){println("name is ${name}") // access the outer class member even privateprintln("Id is ${id}")}}}fun main(args: Array< String> ){println(outerClass().innerClass().description) // accessing propertyvar obj = outerClass().innerClass() // object creationobj.foo() // access member function}

【Kotlin嵌套类和内部类】输出:
code inside inner classname is AshuId is 101

    推荐阅读