Data Class란 ?
- 데이터를 담는 목적으로 만든 클래스
Data Class의 특징
- toString(), hashCode(), equals(), copy() 메소드를 자동으로 만들기에 보일러 플레이트가 줄어듭니다.
- 보일러 플레이트가 줄어들면 똑같은 코드를 작성하다가 발생할 실수를 방지하거나, 수정할 코드 범위가 줄어들어서 유용합니다.
- toString()은 데이터 클래스의 변수와 그 값을 문자열로 반환합니다.
- equal()은 현재 객체와 비교할 객체와 동일한 클래스와 동일한 값을 가졌는지 비교합니다.
- copy()는 현재 객체와 똑같은 값을 같은 새로운 객체를 생성해 반환합니다.
- hashcode()는 현재 객체의 주소값을 변환하여 고유의 정수값을 반환합니다. 주로 객체 비교에 사용합니다.
- 데이터 클래스의 생성자(primary constructor)는 1개 이상의 프로퍼티를 선언해야합니다.
- 생성자 프로퍼티는 val(Value) 또는 var(Variable)로 선언해야합니다.
- 데이터 클래스에 abstract, open, sealed, inner를 붙일 수 없습니다.
- 데이터 클래스는 상속받을 수 없습니다.
- 데이터 분해 및 대입이 가능합니다.
//일반 데이터 대입
val user = User("choi", 29)
val name = user.name
val age = user.age
//데이터 분해 및 대입(Destructuring Declarations)
val user = User("choi", 29)
val (name, age) = user
[Kotlin] Object & Companion Object (0) | 2021.09.21 |
---|---|
[Kotlin] 표준함수 (0) | 2020.12.06 |
[Kotlin] 문자열 (0) | 2020.12.05 |
[Kotlin] 익명 함수와 함수 타입 (1) | 2020.12.05 |
[Kotlin] 함수(Function) (0) | 2020.12.04 |