hyeals study
Data 클래스 본문
Data클래스는 아주 유용하고 간편하게 사용할 수 있는 클래스다.
바로 예시를 들어보면,
data class KotlinPerson(var name: String, var age: Int)
위의 코드는 KotlinPerson이라는 이름의 데이터 클래스이다.
데이터 클래스가 왜 간편하냐면 바로 아래와 같은 이유에서이다.
코틀린에서 작성한 데이터 클래스와 똑같은 기능을 갖는 클래스를 만들기 위해서
자바에서는 아래와 같이 아주 긴 코드 작성이 필요하다.
public class JavaPerson(){
private String name;
private Int age;
public class JavaPerson(){
}
public class JavaPerson(String name, int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public Int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
@Override
public String toString(){
return "JavaPerson{" + "name='" + name + "\'" + ", age=" + age + "}";
}
}
다시 말하면 자바에서 위와 같이 길게 작성해야하는 코드를 코틀린에서는 단 한 줄로 작성이 가능하다는 뜻이다.
정리하면 코틀린의 데이터 클래스는 기본적으로 게터와 세터를 자동으로 제공해주며 이 외에도 다양한 기능들을 제공해준다.
이제 데이터 클래스의 사용법을 알아보겠다.
1. 생성자 호출 및 클래스 생성
var kotlinPerson = KotlinPerson("hyeals", 22)
클래스를 생성하는 방법은 아주 간단하다.
위와 같이 데이터를 넘겨주기만 하면 된다.
2. 데이터 값 변경
데이터 클래스는 자동으로 게터와 세터를 생성해주는데
자바에서는 setXXX getXXX형식이지만 코틀린에서는 아래와 같이 그냥 프로퍼티의 이름으로 접근하면 된다.
kotlinPerson.name = "hhhhh"
kotlinPerson.age = 25
3. copy() 메소드
데이터 클래스는 다양한 기능들을 제공하는데 그 중 copy 메소드는 말 그대로 클래스를 복사해준다.
아래의 코드를 보면 kotlinPerson_copy객체는 kotilnPerson객체를 그대로 복사한 객체이다.
var kotlinPerson_copy = kotlinPerson.copy()
4. toString() 메소드
toString메소드는 객체가 갖고 있는 정보를 문자열로 만들어준다.
kotlinPerson.toString()
kotlinPerson_copy.toString()
위의 코드들을 모두 종합해서 출력해보면 아래와 같은 결과가 나온다.
var kotlinPerson = KotlinPerson("hyeals", 22)
var kotlinPerson_copy = kotlinPerson.copy()
kotlinPerson.name = "hhhhh"
kotlinPerson.age = 25
println(kotlinPerson.toString())
println(kotlinPerson_copy.toString())
'코틀린' 카테고리의 다른 글
코루틴 이해하기 2 (1) | 2020.06.19 |
---|---|
코루틴 이해하기 1 (0) | 2020.06.19 |
map 함수 (0) | 2020.06.15 |
[코틀린] 제네릭 타입 파라미터 (0) | 2020.02.28 |
[코틀린] 고차 함수 (0) | 2020.02.27 |
Comments