728x90
Data Class (데이터 클래스)
- 자바에서 자바빈 패턴을 자동으로 생성해주는 클래스라 이해함
- Data Class 때문에 Lombok을 사용 안해도 되서 좋은 듯
Data Class 특징
- 슈퍼 클래스를 가질 수 없음
- 주 생성자에 기본 파라미터가 1개 이상 존재해야하며, val or var로 선언해야함
- abstract / open / sealed / inner 키워드 사용 불가
Data Class에서 제공하는 것
- hashCode() : 해시값 계산시 사용
- copy() : 객체 복사
- equals() : 데이터의 값 비교
- toString() : 데이터를 문자열로 쉽게 알아보고 싶을 때 사용
- componentsN() : 구조 분해 기능
Data Class 사용 예시
data class Member (
val name: String,
var age: Int,
var address: String
)
fun main() {
val tom = Member("톰", 20, "안양")
val sameTom = Member("톰", 20, "안양")
val kevin = Member("케빈", 20, "안양")
//Member(name=톰, age=20, address=안양) 출력
println(tom)
//true
println(tom == sameTom)
//false
println(tom === sameTom)
//false
println(tom == kevin)
}
- toString() 메소드를 통해서 생성한 객체 출력시 값들이 알아서 출력
- == 연산자로는 객체가 동일한 값을 담고 있는지 비교, === 연산자 일 경우 메모리상 같은 객체인지 비교
그외 부가적인 부분은 추후 정리..
'KOTLIN' 카테고리의 다른 글
[KOTLIN] 확장함수 (0) | 2022.05.22 |
---|---|
[KOTLIN] Scope 함수 (0) | 2022.05.18 |
[KOTLIN] 컬렉션 (0) | 2022.05.18 |
[KOTLIN] OPEN 키워드 (0) | 2022.05.10 |
[KOTLIN] OBJECT 키워드 (0) | 2022.05.07 |