Kotlin - 内部类

Kotlin - 内部类 首页 / Kotlin入门教程 / Kotlin - 内部类

嵌套类

嵌套类就是在另一个类内部创建的类。在Kotlin中,嵌套类默认情况下是静态的,因此无需创建类的对象即可访问其数据成员和成员函数。嵌套类无法访问外部类的数据成员。

class outerClass{
   //外部类代码
    class nestedClass{
      //嵌套类代码
    }
}

嵌套类示例

class outerClass{
    private var name: String = "Ashu"
    class nestedClass{
        var description: String = "code inside nested class"
        private var id: Int = 101
        fun foo(){
         // print("name is ${name}")//不能访问外部类成员
           println("Id is ${id}")
        }
    }
}
fun main(args: Array<String>){
     // 嵌套类必须初始化
     println(outerClass.nestedClass().description)//访问属性
     var obj = outerClass.nestedClass()//对象创建
     obj.foo()//访问成员函数
}

输出:

code inside nested class
Id is 101

内部类

内部类是在另一个具有关键字inner的类中创建的类。换句话说,无涯教程可以说标记为“内部”的嵌套类称为内部类。

内部类不能在接口内部或非内部嵌套类中声明。

class outerClass{
   //外部类代码
    inner class innerClass{
      //嵌套类代码
    }
}

内部类优于嵌套类的优点是,即使它是私有的,它也可以访问外部类的成员。内部类保留对外部类对象的引用。

无涯教程网

内部类示例

class outerClass{
     private  var name: String = "Ashu"
     inner class  innerClass{
       var description: String = "code inside inner class"
       private var id: Int = 101
       fun foo(){
        println("name is ${name}")//访问外部类成员甚至私有
        println("Id is ${id}")
       }
    }
}
fun main(args: Array<String>){
    println(outerClass().innerClass().description)//访问属性
    var obj = outerClass().innerClass()//对象创建
    obj.foo()//访问成员函数

}

输出:

code inside inner class
name is Ashu
Id is 101

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

玩转webpack -〔程柳锋〕

性能测试实战30讲 -〔高楼〕

Java业务开发常见错误100例 -〔朱晔〕

Spark性能调优实战 -〔吴磊〕

手把手带你写一个Web框架 -〔叶剑峰〕

全链路压测实战30讲 -〔高楼〕

现代React Web开发实战 -〔宋一玮〕

结构思考力 · 透过结构看表达 -〔李忠秋〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)