Kotlin教程:嵌套和内部类示例

2020-04-2311:28:47编程语言入门到精通Comments1,822 views字数 1429阅读模式

嵌套类是在另一个类中创建的类。 在Kotlin中,嵌套类默认是静态的,因此可以在不创建类对象的情况下访问其数据成员和成员函数。 嵌套类无法访问外部类的数据成员。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

class outerClass{  
   //outer class code  
    class nestedClass{  
      //nested class code  
    }  
}
Kotlin

Kotlin嵌套类示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

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}") // cannot access the outer class member
            println("Id is ${id}")
        }
    }
}
fun main(args: Array<String>){
// nested class must be initialize
    println(outerClass.nestedClass().description) // accessing property
    var obj = outerClass.nestedClass() // object creation
    obj.foo() // access member function
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

code inside nested class
Id is 101
Shell

Kotlin内部类

内部类是一个使用关键字inner在一个类中创建的类。 换句话说,可以说标记为inner的嵌套类称为内部类。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

内部类不能在接口或非内部嵌套类中声明。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

class outerClass{  
   //outer class code  
    inner class innerClass{  
      //nested class code  
    }  
}
Kotlin

内部类优于嵌套类的优点是,即使它是私有的,它也能够访问外部类的成员。 内部类保持对外部类的对象的引用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

Kotlin内部类示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

class outerClass{
    private  var name: String = "Maxsu"
    inner class  innerClass{
        var description: String = "code inside inner class"
        private var id: Int = 10010
        fun foo(){
            println("姓名:${name}") // access the outer class member even private
            println("编号:${id}")
        }
    }
}
fun main(args: Array<String>){
    println(outerClass().innerClass().description) // accessing property
    var obj = outerClass().innerClass() // object creation
    obj.foo() // access member function

}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

code inside inner class
姓名:Maxsu
编号:10010

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-nested-class-and-inner-class.html#article-start文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18296.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/18296.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定