본문 바로가기
Programming/Kotlin

[Kotlin] 코틀린 뽀개기 - data 키워드를 사용해서 클래스 만들기

by 코딩의성지 2019. 12. 5.

하이~~!! 

 

코틀린의 기본강의가 거의 거의 끝나간다. 코틀린도 공부하랴, 파이썬도 공부하랴...!! 생각보다 굉장히 빡세다 ㅜㅜ

하지만 열심히 해야겠다. ㅎㅎ 그래도 이렇게 내가 꾸준하게 뭔가를 하고 있는게 나름 자랑스럽다.

 

오늘은 data라는 키워드를 사용해서 class를 만들어 볼거다!

 

data class

 

data 라는 키워드가 붙어있는 클래스는 메서드 없이 단순히 데이터를 관리하기 위한 클래스가 만들어진다.

 

무슨 말인지 잘 모르겠다고?? 아래의 예제를 보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
fun main(args : Array<String>) {
    // 따로 초기화 안되어 있어서 생성시 값을 채워줘야 함
    var numClass = NumClass(n1 = 1, n2 = 9.9 , n3 = 8.7f)
    println("n1 : ${numClass.n1}")
    println("n2 : ${numClass.n2}")
    println("n3 : ${numClass.n3}")
 
    var fruitClass = FruitClass()
    println("fruit1 : ${fruitClass.fruit1}")
    println("fruit2 : ${fruitClass.fruit2}")
    println("fruit3 : ${fruitClass.fruit3}")
 
    // 초기화 되어있는 값 중 하나 변경하여 객체만듬
    fruitClass = FruitClass(fruit1 = "딸기")
    println("fruit1 : ${fruitClass.fruit1}")
    println("fruit2 : ${fruitClass.fruit2}")
    println("fruit3 : ${fruitClass.fruit3}")
 
    // 객체 copy
    var copyClass = fruitClass.copy()
    println("fruit1 : ${copyClass.fruit1}")
    println("fruit2 : ${copyClass.fruit2}")
    println("fruit3 : ${copyClass.fruit3}")
 
    //객체 copy 하면서 값 변경
    var copyClass2 = numClass.copy(n1=100)
    println("n1 : ${copyClass2.n1}")
    println("n2 : ${copyClass2.n2}")
    println("n3 : ${copyClass2.n3}")
 
}
 
//초기화 하지않은 data class
data class NumClass (var n1 : Int , var n2 : Double, var n3 :Float)
 
//초기화 한 data class
data class FruitClass (var fruit1 : String = "사과"var fruit2: String ="배"var fruit3: String ="바나나")
 

자 소스를 보자! ㅎㅎ 내가 두개의 클래스를 만들었다.

하나는 데이터 값을 따로 초기화 하지 않은 NumClass,

하나는 데이터 값을 초기화 해준 FruitClass .

 

만약 따로 초기화 안해주는 Class 라면 생성시 값을 세팅해줘야한다. 그리고 생성하면서 일부 변수값만 세팅해서 생성해 줄수도 있다.

 

그리고 copy 함수를 이용해서 객체를 복사할 수도 있는데, 여기 파라미터에 값을 채워주면 해당 변수값을 변경하면서 복사를 할 수도 있다.

 

위의 소스를 실행을 해보면 ! 

 

이런 결과가 나온다.

 

그럼 오늘도 열코하자 !! 안녕!

반응형

댓글