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 |
Tags
- 안드로이드
- CoordinatorLayout
- 백준
- 코틀린
- Behavior
- lifecycle
- recyclerview
- CollapsingToolbarLayout
- ViewModel
- View
- onLayout
- HTTP
- LiveData
- onMeasure
- AppBarLayout
- BOJ
- activity
- 알고리즘
- 알림
- Android
- Coroutine
- sqlite
- Navigation
- hilt
- Algorithm
- DataBinding
- kotlin
- CustomView
- notification
- room
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