반응형
안녕하세요. 훈츠 입니다. 오늘은 데이터 클래스와 이늄 클래스에 대해 설명 드려보도록 하겠습니다.
데이터 클래스 (data class)
일반 클래스에 data 를 붙이면 data 클래스가 됩니다. data 클래스는 코틀린에서 데이터를 저장할 목적으로 만들어진 클래스로 데이터클래스로 선언하면 5가지 기능의 함수가 자동적으로 생성됩니다.
- equals()
- hashcode()
- toString()
- copy()
- component()
- x1 는 key값 , x2는 value값을 가져올수 있습니다.
data class Data(var name:String,var hobby:String, var age:Int){}
fun main() {
var data = Data("은서", "공부",13)
println(data.equals(Data("은서","공부",14)))
println(data.hashCode())
println(data.toString())
println(data.copy())
println(data.component1())
println(data.component2())
}
//출력내용
false
1611141406
Data(name=은서, hobby=공부, age=13)
Data(name=은서, hobby=공부, age=13)
은서
공부
이늄 클래스(ENUM class)
enum 을 붙이고 class를 선언하면 enum클래스가 됩니다. 클래스 안의 객체들은 관행적으로 상수를 나타낼때 사용하는 대문자로 기술한다. 또한 이늄의 객체들은 고유한 속성을 가질수 있다.
- 관행적으로 상수를 나타낼때 대문자로 기술한다.
- 함수도 선언가능 합니다.
- 선언 마지막은 ; 으로 문장의 끝을 알립니다.
enum class Color(val number:Int){
RED(1),
BLUE(2),
GREEN(3); //마지막은 ; 으로 마무리한다.
fun isRed() = this == RED //함수도 선언이 가능하다.
}
fun main() {
var state = Color.RED
println(state)
println(state.compareTo(Color.RED))
println(state.ordinal) //순서를 나타냅니다. 0,1,2
println(state.name) //RED
println(state.number) //RED안에 가지고있는 숫자
println(state.isRed()) //함수 호출
}
//출력화면
RED
0
0
RED
1
true
다른 기능들과 마찬가지로, 적절하게 데이터 클래스와 이늄클래스를 이용하면 코드의 가독성을 높일수있고 효율적으로 프로그램 관리가 가능합니다.
'컴퓨터 언어 > 코틀린' 카테고리의 다른 글
[Kotlin] 코틀린 변수의 활용 (상수, 늦은 초기화,지연 대리자)const, lateinit, lazy by { } (0) | 2020.02.24 |
---|---|
[Kotlin] 코틀린 컬렉션 클래스 (collection) (0) | 2020.02.24 |
[Kotiln] 코틀린 중첩 클래스와 내부 클래스 (0) | 2020.02.21 |
[Kotiln] 코틀린 함수의 활용 Vararg (0) | 2020.02.19 |
[Kotiln] 코틀린 nullable 변수 처리 (0) | 2020.02.18 |