라벨이 익명중첩클래스인 게시물 표시

Kotlin 중첩 클래스

Kotlin 중첩 클래스 중첩 클래스 클래스안에 만드는 클래스를 중첩클래스라고 부른다. 중첩 클래스에서는 각 클래스의 정의한 멤버를 사용할 수 있는가를 숙지 해야 한다. Inner 클래스는 OuterClass의 멤버변수를 사용하기가 쉬워진다. class Outer1 { inner class Inner { } } Inner Class , Outer Class 내부클래스는 외부 클래스로 부터 생성된 객체를 통해서만 객체 생성이 가능하다. 외부클래스는 내부클래스의 멤버를 자유롭게 사용할 수 없지만, 내부 클래스는 외부 클래스의 멤버를 자유롭게 사용할 수 있다. fun main () { var obj2 = Inner1() // Error } class Outer1 { inner class Inner1 { } } Kotlin: Unresolved reference: Inner1 내부클래스를 직접적으로 객체를 생성할 수 없기때문에, 에러가 발생한다. fun main () { var obj1 = Outer1() var obj2 = obj1.Inner1() } class Outer1 { inner class Inner1 { } } 외부클래스의 객체를 먼저 생성한뒤, 내부 클래스의 객체를 생성 할 수 있다. fun main () { var obj1 = Outer1() var obj2 = obj1.Inner1() } class Outer1 { val outerMember1 = 100 fun outerMethod1 () { println ( "Outer Method" ) println(innerMember1) // Error innerMethod1() // Error } inner class Inner1 { val innerMember1 = 100 fun inner