クラスのネスト記述
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
は遅延初期化される。
リンク
リンク