Kotlin – inner and nested
  和Java一样,在Kotlin中,你可以在一个类中声明另一个类。不太一样的是,在kotlin中,嵌套类(nested class)默认不能访问其外部类(outer class)的实例,除非你明确指出可以访问。 
   在kotlin中,一个没有修饰符的嵌套类与Java中的静态嵌套类一样。为了能让其引用其外部类,需要用inner修饰符指定。 
   
| 在class A中声明一个class B | 在Java中 | 在Kotlin中 | 
|---|---|---|
| Nested class (doesn’t store a reference to an outer class) | static class A | class A | 
| Inner class (stores a reference to an outer class) | class A | inner class A | 
  Nested class不能引用其outer class,而Inner class则可以。 
   其语法如下:
class Outer {
    inner class Inner {
        fun getOuterReference(): Outer = this@Outer
    }
}
 京公网安备 11010502036488号
京公网安备 11010502036488号