[Kotlin] 중첩클래스

백현균·2023년 4월 16일

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@바깥클래스를 사용

0개의 댓글