-
Kotlin) 코틀린 inner 클래스 알아보기Kotlin 2020. 12. 18. 20:30
inner 클래스를 알아보기 이전에 중첩(nested) 클래스를 알아보는 것이 좋습니다.
Nested Class(중첩 클래스)
class OuterClass { class NestedClass { } }
위와 같이 외부 OuterClass 내부에 내부 클래스로 NestedClass가 있는 형태입니다.
Static Nested Class(정적 중첩 클래스)
- 정적 중첩 클래스는 외부 클래스(OuterClass)의 지역변수에 접근이 불가능합니다.
- 외부에서 OuterClass의 NestedClass의 객체 생성이 가능합니다.
fun main(args: Array<String>) { val staticNested = OuterClass.StaticNestedClass() staticNested.printItems() } class OuterClass { val outerValue= 10 class StaticNestedClass { private val innerVal = 20 fun printItems() { println("value : $innerVal") } } }
Inner Class = Non-static Nested Class(비정적 중첩 클래스)
- 정적 충첩 클래스와 반대로 OuterClass 지역변수에 접근이 가능합니다.
- 외부에서 OuterClass의 NestedClass의 객체 생성이 불가능합니다.
fun main(args: Array<String>) { val innerNested = OuterClass() innerNested.printItems() } class OuterClass { val outerValue = 10 inner class InnerClass { private val innerVal = 20 fun printItem() { println("inner :$innerVal") } } fun printItems() { val inner = InnerClass() inner.printItem() } }
References
반응형'Kotlin' 카테고리의 다른 글
Kotlin) Coroutine 공식 가이드 번역 01 - Basics (0) 2021.01.08 Kotlin) lateinit과 lazy 특징과 차이점 (0) 2020.12.22 Kotlin) 코틀린 infix 키워드 알아보기 (0) 2020.12.15 Kotlin) 코틀린 Collection - List, Map, Set 사용법 (0) 2020.12.15 Kotlin) inline 함수와 고차함수 알아보기 (0) 2020.12.15