Kotlin, 중첩 클래스와 내부 클래스

Yebali·2021년 8월 16일
0

약간의_Kotlin

목록 보기
15/19

중첩 클래스

형태만 내부에 존재할 뿐 외부 클래스의 내용을 공유 할 수 없는 별개의 클래스

내부 클래스

외부 클래스 객체 안에서 사용되는 클래스이기 때문에 외부 클래스의 내용을 사용 할 수 있다.
혼자서 객체를 만들 수 없고 외부 클래스의 객체가 있어야만 사용가능하다.

사용 예시

class Outer {
    var text = "Outer Class"
    
    class Nested {
        fun introduce() {
            println("Nested Class")
        }
    }
    
    inner class Inner {
        var text = "Inner Class"
        
        fun introduceInner() {
            println(text)
        }
        
        fun introduceOuter() {
            // outer, inner 클래스에 이믈이 같은 속성이 있다면 @Outer로 참조
            println(this@Outer.text) 
        }
    }
}

fun main() {        
	
    Outer.Nested().introduce()
    
    val outerIns = Outer()
    val innerIns = Outer().Inner()
    
    innerIns.introduceInner()
    innerIns.introduceOuter()
    
    outerIns.text = "Changed Outer Class"
    innerIns.introduceOuter()
}
profile
머리에 다 안들어가서 글로 적는 중

0개의 댓글