[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 |
댓글