테크과학! DiMo
개발 환경: play.kotlinlang.org
중첩 클래스(Nested Class)
하나의 클래스가 다른 클래스의 기능과 강하게 연관되어 있다는 의미를 전달하기 만들어진 형식
class Outer {
class Nested {
}
}
Outer.Nested()
내부 클래스(Inner Class)
혼자서 객체를 만들수는 없고 외부 클래스의 객체가 있어야만 생성과 사용이 가능한 클래스
내부 클래스(Inner Class)
class Outer {
inner class Inner { // inner 키워드
}
}
fun main() {
Outer.Nested().introduce()
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")
}
}
inner class Inner {
var text = "Inner Class"
fun introduceInner() {
println(text)
}
fun introduceOuter() {
println(this@Outer.text)
}
}
}
Output:
Nested Class
Inner Class
Outer Class
Changed Outer Class
중첩 클래스와 내부 클래스는 클래스 간의 연계성을 표현하여 코드의 가독성 및 작성 편의성이 올라갈 수 있으므로
적절한 상황에서 사용하면 좋다.
'Kotlin > 기본 문법' 카테고리의 다른 글
코틀린 강좌 #25 컬렉션 2탄, Set과 Map (0) | 2020.12.24 |
---|---|
코틀린 강좌 #24 Data Class 와 Enum Class (0) | 2020.12.24 |
코틀린 강좌 #22 함수의 argument를 다루는 방법과 infix 함수 (0) | 2020.12.24 |
코틀린 강좌 #21 null 값을 처리하는 방법? 동일한지를 확인하는 방법? (0) | 2020.12.24 |
코틀린 강좌 #20 문자열을 다루는 법 (0) | 2020.12.20 |