Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 1.03 KB

nested and inner classes_gmlwo530.md

File metadata and controls

44 lines (35 loc) · 1.03 KB

작성자 : gmlwo530

kotlin을 공부하다가 다음과 바깥 클래스의 변수를 참조하고 싶은데 참조가 되지 않았습니다. 구글링을 해보니 nested and inner class 개념이 있어 twl에 기록합니다.

  class Outer {
      private val bar: Int = 1
      class Inner {
          fun foo() = bar // bar를 참조 할 수 없습니다.
      }
  }

Nested Class

기본적으로 class는 다른 class에 nested 될 수 있습니다

class Outer {
    private val bar: Int = 1
    class Nested {
        fun foo() = 2
    }
}

val demo = Outer.Nested().foo() // == 2

이때 nested 된 클래스에서 바깥 클래스의 변수를 참조 하고 싶으면 inner를 붙여주면 됩니다.

class Outer {
    private val bar: Int = 1
    inner class Nested {
        fun foo() = bar
    }
}

val demo = Outer().Nested().foo() // == 2


Reference : https://kotlinlang.org/docs/reference/nested-classes.html