1. 권장되는 클래스안의 클래스
1) static 사용: 코틀린에서는 static키워드가 존재하지 않으므로 그냥 class키워드만 명시
class Hourse(
private val address:String,
private val livingRoom:LivingRoon = LivingRoon(10.0),
)
{
class LivingRoom(
private val area:Double
){
}
}
2. 권장되지 않는 내부 클래스
1) inner 키워드 사용
* 바깥 클래스에 대한 참조가 필요할 경우 this@House를 사용하여 참조
class Hourse(
private val address:String,
private val livingRoom:LivingRoon = LivingRoon(10.0),
)
{
inner class LivingRoom(
private val area:Double
){
val address:String
get() = this@House.address
}
}
3. 코틀린에서는 기본적으로 바깥 클래스를 참조하지 않음
1) 굳이 참조하고싶으면 내부 클래스에 inner키워드를 사용
4. 정리
1) 클래스안에 클래스가 있는 경우 종류는 두 가지
* (자바기준) static을 사용하는 클래스
* (자바기준) static을 사용하지 않는 클래스
2) 권장되는 방법은 static을 사용하는 클래스
* 코틀린에서 가이드를 따르기 위한 방법
클래스안에 기본 클래스를 사용하면 바깥 클래스에 대한 참조가 없음
* 굳이 바깥 클래스를 참조하고 싶다면, inner키워드 사용
* 코틀린 inner클래스에서 바깥 클래스를 참조하려면 this@바깥클래스를 사용