Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백준
- DataBinding
- activity
- Android
- Coroutine
- CoordinatorLayout
- View
- 코틀린
- recyclerview
- Navigation
- sqlite
- onMeasure
- kotlin
- LiveData
- ViewModel
- room
- notification
- AppBarLayout
- hilt
- lifecycle
- Algorithm
- Behavior
- CollapsingToolbarLayout
- 안드로이드
- 알림
- BOJ
- CustomView
- 알고리즘
- onLayout
- HTTP
Archives
- Today
- Total
개발일지
Kotlin in A..Z (21) - 데이터 클래스 본문
데이터 클래스 (DTO)
자바에서는 POJO라고 부르는 개념이다. 특정 동작을 하지 않고 오로지 데이터 전달을 위한 목적의 클래스이면 클래스에서 필요없는 기능을 제외하여 리소스를 효과적으로 활용할 수 있다.
데이터 클래스가 자동으로 가지는 메서드
- 프로퍼티를 위한 getter, setter
- equals()
- hashCode()
- toString()
- copy()
- 프로퍼티에 상응하는 component1(), component2() ....
데이터 클래스의 조건
- 주 생성자는 최소 하나 이상의 프로퍼티를 가져야 한다.
- 주 생성자의 모든 매개변수는 val, var로 지정된 프로퍼티여야 한다.
- 데이터 클래스는 abstract, open, sealed, inner 키워드를 사용할 수 없다.
객체 디스트럭처링 (Destructuring)
객체가 가지고 있는 프로퍼티를 개별 변수로 분해하여 할당하는 작업
소괄호를 이용한 디스트럭처링
코드
data class Something(val id:Long = 0, val name:String = "") {
}
fun main() {
val (id, name) = Something(1, "개발일지")
println("Name : $name")
println("ID : $id")
}
결과
Name : 개발일지
ID : 1
특정 프로퍼티 제외 (_)
코드
data class Something(val id:Long = 0, val name:String = "") {
}
fun main() {
val (_, name) = Something(1, "개발일지")
println("Name : $name")
}
결과
Name : 개발일지
componentN 메서드를 사용한 디스트럭처링
코드
data class Something(val id:Long = 0, val name:String = "") {
}
fun main() {
val something = Something(1, "개발일지")
val id = something.component1()
val name = something.component2()
println("Name : $name")
println("ID : $id")
}
결과
Name : 개발일지
ID : 1
컨테이너에 포함된 객체 디스트럭처링
코드
data class Something(val id:Long = 0, val name:String = "") {
}
fun main() {
val something1 = Something(1, "개발일지")
val something2 = Something(2, "Kang")
val something3 = Something(3, "Tae")
val something4 = Something(4, "Jong")
val list = listOf(something1, something2, something3, something4)
for((id, name) in list) {
println("Name : $name")
println("ID : $id")
}
}
결과
Name : 개발일지
ID : 1
Name : Kang
ID : 2
Name : Tae
ID : 3
Name : Jong
ID : 4
'Kotlin (코틀린)' 카테고리의 다른 글
Kotlin in A..Z (23) - 열거형 클래스, 실드 클래스 (0) | 2020.07.17 |
---|---|
Kotlin in A..Z (22) - 내부 클래스 (0) | 2020.07.17 |
Kotlin in A..Z (20) - 추상 클래스 (0) | 2020.07.17 |
Kotlin in A..Z (19) - 인터페이스 (0) | 2020.07.17 |
Kotlin in A..Z (18) - companion object, object, 싱글톤 (0) | 2020.07.16 |
Comments