Kotlin 앱 프로그래밍
(코틀린) 데이터 클래스와 컴패니언 클래스
쿠카이든
2023. 5. 22. 16:05
728x90
데이터 클래스
데이터 클래스는 data 키워드로 선언하며 자주 사용하는 데이터를 객체로 묶어 준다.
또한, VO 클래스를 편리하게 이용할 수 있게 해준다.
class NonDataClass(val name: String, val email: String, val age: Int)
data class DataClass(val name: String, val email: String, val age: Int)
fun main(){
val non1 = NonDataClass("kuka", "a@a.com", 10)
val non2 = NonDataClass("kuka", "a@a.com", 10)
val data1 = DataClass("kuka", "a@a.com", 10)
val data2 = DataClass("kuka", "a@a.com", 10)
println("non data class equals : ${non1.equals(non2)}")
println("data class equals : ${data1.equals(data2)}")
}

- equal() 함수로 일반 클래스의 객체를 비교하면 객체 자체를 비교하므로 결괏값은 false이다.
- 하지만 데이터 클래스의 객체를 비교하면 객체 자체가 아니라 객체의 데이터를 비교하므로 true이다.
- 이처럼 data 클래스를 이용하면 객체의 데이터를 비교할 때 훨씬 편리하다.
컴패니언 클래스
- 클래스 이름으로 멤버에 접근할 수 있게 하려면 companion이라는 키워드로 선언해야 한다.
- 아래 예제와 같이 클래스 내부에 companion object { } 형태로 선언하면 이 클래스를 감싸는 클래스 이름으로 멤버에 접근할 수 있다.
class KukaClass {
companion object {
var data = 10
fun some() {
println(data)
}
}
}
fun main(){
KukaClass.data = 20
KukaClass.some()
}

출처 : 깡샘의 안드로이드 프로그래밍 with 코들린 (강성윤 저)
728x90