主页 > IT业界  > 

Kotlin嵌套类和内部类

Kotlin嵌套类和内部类

在Kotlin中,嵌套类(Nested Class)和内部类(Inner Class)是两种不同的类,它们在定义和使用上有一些区别。

1.嵌套类(Nested Classes)默认是静态的(即等同于Java中的static),可以有修饰符(如private、protected),不持有外部类的引用,不能访问外部类的成员。 2.内部类(Inner Classes)持有外部类的引用,可以访问外部类的私有成员

使用区别:嵌套类则更多地用于创建独立的、不需要访问外部类成员的类,而内部类经常用于定义在某个类的作用域内,只为外部类服务的类。

代码举例:

class Outer{ class MyNested{//嵌套类 fun printMessage(){ println("这是一个嵌套类") // println("外部类属性:${this@Outer.name}")//报错,嵌套类不持有外部类的引用,不能访问外部类成员 } } var name = "外部类" } class Outer2{ inner class MyInner{//内部类 用inner修饰类 fun printMessage(){ println("这是一个内部类") println("外部类属性:${this@Outer2.name}") //不报错,内部类可以访问外部类成员 } } var name="外部类" } fun main() { //嵌套类 val nested = Outer.MyNested() nested.printMessage() //内部类 val inner = Outer2().MyInner() inner.printMessage() }
标签:

Kotlin嵌套类和内部类由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Kotlin嵌套类和内部类