728x90
반응형
SMALL
Data Class
Kotlin은 기존의 Java Data class보다 손쉽게 Data class를 정의할 수 있습니다.
public class User{
String name;
int age;
@Override
public String toString(){
return ".. ...";
}
public String getNaume(){
return name;
}
public void setName(String name){
this.name = name;
}
}
Java에서는 위처럼 toString, equals, setter,getter 메서드를 직접 구현해야합니다.
하지만 코틀린에서는 밑의 한줄의 코드로 Data class를 정의할 수 있고,
equals()/hashCode(), toString(), copy()와 setter, getter를 자동적으로 생성해줍니다.
data class User(val name: String = "", val age: Int = 0)
선언시 파라미터의 초기값도 정해주어야 합니다.
Data Classes의 객체 생성은 다음과 같이 가능합니다.
val user1 = User("Lilly", 28)
val user2 = User(name = "Jack", age = 1)
val user3 = User(name = "Jhon")
- toString()의 리턴 form은 "User(name=Lilly, age=28)" 형식입니다.
따라서 , 다음 코드의 다음과 같은 결과를 얻을 수 있습니다.
val user1 = User("Lilly", 28)
println(user1)
결과>>
> User(name=Lilly, age=28)
물론 override하여 사용할 수도 있습니다.
data class User(val name: String = "", val age: Int = 0){
override fun toString() = "User{...}"
}
- copy()는 특정 매개변수만 고쳐 copy하고 싶을 때 사용할 수 있습니다.
val jack = User(name = "Jack", age = 1)
val olderJack = jack.copy(age = 2)
참고 자료
728x90
반응형
LIST
'Android > 이론' 카테고리의 다른 글
ViewModel과 View(Activity, Fragment)간의 이벤트 처리― Event Wrapper 사용하기 (0) | 2020.08.19 |
---|---|
[Android Test] Espresso @SmallTest, @MediumTest, @LargeTest 구분의 의미 (0) | 2020.08.18 |
Kotlin 문법 (1) 변수/함수 선언하기, Nullable/Non-Null (0) | 2020.07.17 |
Kotlin 시작하기 ― 설정, Basic 문법 (0) | 2020.07.01 |