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
    
    
  'Kotlin 앱 프로그래밍' 카테고리의 다른 글
| (코틀린 버전) 안드로이드 푸시알림 spring boot 서버 개발 (0) | 2023.06.20 | 
|---|---|
| (코틀린) 람다함수와 고차함수 (0) | 2023.05.28 | 
| (코틀린) 상속과 오버라이딩 (0) | 2023.05.22 | 
| (코틀린) 주 생성자와 보조 생성자 (0) | 2023.05.22 | 
| 코틀린 널 안정성 연산자 (0) | 2023.05.21 |