티스토리 뷰

반응형

DTO ( POJO/ POCO) 생성 및 사용 방법
자바 문법

class DtoStudent {
     private String name;
         
     public void setName(String name){ this.name = name; }
     public String getName(){ return this.name;}
}

코틀린 문법

data class DtoStudent(var name: String)

 

자바에서는 getter/setter을 만들어 줘야합니다.

코틀린에서는 데이터 클래스(data class)를 이용 데이터 전송 개체인 DTO를 만듭니다.

 

데이터 클래스(data class) 사용 시 아래 기능을 따로 구현하지 않아도 사용가능합니다.

getters (and setters in case of vars) for all properties
equals(), hashCode(), toString(), copy(), component1(), component2(), …,

데이터 클래스(data calss) 사용시 주의할점은 생성자에는 하나 이상의 매개 변수가 필요하며, 생성자 매개 변수는 val or var로 표시해야 합니다.

데이터 클래스에 더 상세한 설명은 여기를 클릭해주세요.

 

Data Classes - Kotlin Programming Language

 

kotlinlang.org

fun main(args: Array<String>) {
	// 자바에서 인스턴스 시 new DtoStudent() 문법을 사용합니다.
	// 코틀린에서는 인스턴스 시 new가 필요없습니다.
	val dto = DtoStudent(1, "철수")
	// getter
	println("${dto.grade} ${dto.name}")

	// setter
	dto.grade = 2
	dto.name = "영희"
	println("${dto.grade} ${dto.name}")

	// copy()를 이용사하여 객체 복사
	val dto2 = dto.copy()
	println("복사, ${dto2.grade} ${dto2.name}")

	// 객체 복사 시 특정 데이터를 변경하여 복사
	val dto3 = dto.copy(3)
	println("복사 시 학년 변경, ${dto3.grade} ${dto3.name}")
	val dto4 = dto.copy(name = "동이")
	println("복사 시 이름 변경, ${dto4.grade} ${dto4.name}")

	// 또 다른 방법
	val dto5 = DtoStudent2(6)
	dto5.name = "용용이"
	println("${dto5.grade} ${dto5.name}")
}

data class DtoStudent(var grade: Int, var name: String)

data class DtoStudent2(var grade: Int) {
	var name: String = ""
}

실행 결과

1 철수
2 영희
복사, 2 영희
복사 시 학년 변경, 3 영희
복사 시 이름 변경, 2 동이
6 용용이

 

위 코드를 이해하기 위해서는 아래 코틀린 문법이 필수입니다.

2019/05/19 - [Kotlin] - 코틀린 기초 문법) 1. 코틀린 변수 정의하기

2019/05/19 - [Kotlin] - 코틀린 기초 문법) 2. 코틀린 함수 정의하기

2019/05/19 - [Kotlin] - 코틀린 기초 문법) 3. 코틀린 문자열 템플릿 String Template

반응형
댓글
최근에 올라온 글
최근에 달린 댓글