Do it! 코틀린 프로그래밍 책을 참고 및 인용 하여 작성 되었습니다. 책에 없는 주관적 내용이 있을 수 있습니다
DTO를 사용하는 이유
DTO는 일종의 표준과 같은 약속 -> 전송하거나 받고자 하는 어떤 요소든 데이터를 쉽게 다룰 수 있음
뷰란
mvc모델에서 뷰란 사용자와 상호작용을 수행함
모델이란
mvc모델에서 모델이란 데이터의 표현을 위해 생성
데이터 클래스의 선언
코틀린에서는 데이터 클래스를 제공함
- 주생성자는 최소한 하나의 매개변수
- 주생성자의 모든 매개변수는 val, var
- abstract, open, sealead, inner 키워드 사용 불가
데이터 클래스가 자동 생성하는 메서드
data class Customer(var name: String, var email: String) {
var job: String = "Unknwon"
constructor(name: String, email: String, _job: String) : this(name, email) {
job = _job
}
}
fun main() {
val people1 = Customer("jinmi","wow@naver.com")
val people2 = Customer("jinmi", "wow@naver.com")
println(people1 === people2)
println(people1 == people2)
println(people1.equals(people2))
}
false
true
true
equals는 내용을 비교하는 것이므로 == 연산과 같은 일을 수행하며, 객체를 비교하는 === 연산과는 다른 결과가 나옴
디스트럭처링
de + structuring, 객체가 가지고 있는 포로퍼티가 개별 변수로 표현될 수 있음
data class Customer(var name: String, var email: String) {
var job: String = "Unknwon"
constructor(name: String, email: String, _job: String) : this(name, email) {
job = _job
}
}
fun main() {
val people1 = Customer("jinmi","wow@naver.com")
val (_, peopleEmail) = people1
print(peopleEmail)
}
디스트럭처링시 원하는 변수명으로 객체의 프로퍼티 값을 가지고 올 수 있으며 이때 프로퍼티 이름과 새로 지정하는 변수의 명이 같을 필요는 없다. 하지만 자리에 따라 값을 가지고 오는데 디스트럭처링 부분에서 변수가 하나라면 이름만 가져오고 위와 같이 두 개이면 첫번째 변수에 이름, 두번째 이름의 이메일 값이 온다. 만일 원하지 않는 값이 있는 경우 언더 스코어로 할당하지 않을 수 있다.
내부 클래스를 사용하는 이유
- 독립적인 클래스로 정의하기 모호한 겨우
- 특정한 클래스의 내부에서만 사용하고 외부에서 접근할 필요가 없을때
'NSLog(@"%@", dailyLog)' 카테고리의 다른 글
[Android] 카드뷰 레이아웃 에러 or Refactor > Migrate to AndroidX (0) | 2020.08.26 |
---|---|
[Android] 안드로이드 구성 요소 (0) | 2020.08.17 |
[Kotlin 20200805] 프로퍼티 초기화 (0) | 2020.08.05 |
[Kotlin 20200804] 객체 지향 프로그래밍 - 인터페이스 (0) | 2020.08.04 |
[Kotlin 20200803] 객체 지향 프로그래밍 (0) | 2020.08.03 |
댓글