kotlin 内部クラスから外側クラスのメンバ参照

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

クラスのネスト記述

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は遅延初期化される。