クラスのネスト記述
class OuterClass {
var foo = ""
class InnerClass {}
}
内部クラスから外部クラスのメンバを参照
InnserClassからOuterClassの var Foo を参照するには、内部innerクラスとして宣言する
class OuterClass {
var foo = ""
inner class InnerClass {
fun setFoo(){ foo = "..." }
}
}
また、var Foo は外部クラスでprivate宣言されていても参照可能
class OuterClass {
private var foo = ""
inner class InnerClass {
fun setFoo(){ foo = "..." }
}
}
同様にlateinitのメンバにもアクセス可能。
class OuterClass {
private lateinit var foo : String
inner class InnerClass {
fun setFoo(){ foo = "..." }
}
constructor(){
InnserClass().setFoo()
}
}
この場合、外部クラスメンバfooは遅延初期化される。
リンク
リンク
