코틀린

[Youtube DiMo] 24강. 내부클래스

iseohyun 2022. 4. 30.

목차

    [24강] https://youtu.be/C1XkTc6dLEY

     

     

    1. 중첩클래스

    클래스 내부에 선언하는 클래스

    2. 내부클래스

    클래스 내부에 비동립적으로 선언되는 클래스
    외부 멤버를 가져쓸 때: 직접 호출 가능
    ※ 만약 중복 된다면, "this@외부.멤버"로 작성 가능
    fun main() {
    	Outer.Nested().introduce()
        //Outer.Inner().introduceInner() //Error
        
        val outer = Outer()
        val inner = outer.Inner()
        
        inner.introduceInner()
        inner.introduceOuter()
        
        outer.text = "Changed Outer Class"
        inner.introduceOuter()
    }
    
    class Outer {
        var text = "Outer Class"
        
        class Nested {
            fun introduce() {
                println("Nested Class")
                //println(text) // 참조 할 수 없음
            }
        }
        
        inner class Inner {
            var text = "Inner Class" // 이 부분이 주석되어 있다면, 자동으로 외부 참조
            fun introduceInner(){
                println(text)
            }
            
            fun introduceOuter() {
                println(this@Outer.text)
            }
        }
    }
    Nested Class
    Outer Class
    Outer Class
    Changed Outer Class

    '코틀린' 카테고리의 다른 글

    [Youtube DiMo] 26강. Set / Map  (0) 2022.05.03
    [Youtube DiMo] 25강. Data / Enum  (0) 2022.05.03
    [Youtube DiMo] 23강. 함수  (0) 2022.04.30
    [Youtube DiMo] 22강. Null  (0) 2022.04.29
    [Youtube DiMo] 21강. 문자열  (0) 2022.04.29

    댓글