
[코틀린 문법] 중첩 클래스와 내부 클래스
Nested Class(중첩 클래스)
fun main() {
    val test4 = Test4.Test4NestedClass()
    test4.testFun4()
//    TestFun4
}
// Nested Class(중첩 클래스) //
// 객체지향 / 캡슐화
// 외부 클래스의 내용을 공유할 수 없는 별개의 클래스
class Test4 {
    val tempText1 = "tempText1"
    class Test4NestedClass {
        fun testFun4() {
            println("TestFun4")
            // println(tempText1)
            // Kotlin: Unresolved reference: tempText1
        }
    }
}Inner Class(내부 클래스)
fun main() {
    val test5 = Test5().Test5InnerClass()
    test5.testFun5()
//    TestFun5
//    tempText2
}
// Inner Class(내부 클래스) //
// RecyclerView
// 혼자서 객체를 만들 수 없음(외부 클래스의 객체가 있어야만 생성 및 사용 가능)
class Test5 {
    val tempText2 = "tempText2"
    inner class Test5InnerClass {
        fun testFun5() {
            println("TestFun5")
            println(tempText2)
        }
    }
}fun main() {
    Out.Nest().introduce()
    val outer = Out()
    val inner = outer.In()
    inner.introduceIn()
//    Nested Class
//    Inner Class
    inner.introduceOut()
//    Outer Class
    outer.text = "Changed Outer Class"
    inner.introduceOut()
//    Changed Outer Class
}
// 실습
class Out {
    var text = "Outer Class"
    class Nest {
        fun introduce() {
            println("Nested Class")
        }
    }
    inner class In {
        var text = "Inner Class"
        fun introduceIn() {
            println(text)
        }
        fun introduceOut() {
            println(this@Out.text)
        }
    }
}참고
[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법 - 인프런 | 강의
코틀린 문법 기초 강의입니다. 안드로이드 앱을 코틀린 언어로 개발하고 싶으신 분들을 위한 강의이고, 기초부터 튼튼하게 코틀린 문법을 재미있게 공부할 수 있습니다., - 강의 소개 | 인프런...
www.inflearn.com
반응형
    
    
    
  '개발(Android) > kotlin syntax' 카테고리의 다른 글
| [Kotlin syntax] Collections (2) Set, Map (0) | 2022.04.09 | 
|---|---|
| [Kotlin syntax] Data Class, Enum Class (0) | 2022.04.08 | 
| [Kotlin syntax] Arguments, Infix Functions (0) | 2022.04.08 | 
| [Kotlin syntax] Equality (0) | 2022.04.08 | 
| [Kotlin syntax] Null Safety (0) | 2022.04.07 |