Coding/Kotlin

클래스

코딩; 2022. 1. 26. 06:50

클래스의 기본형태

class Person{
    var firstName:String
    var lastName:String
    var age:Int

    constructor(firstName:String, lastName:String, age:Int){
        this.firstName = firstName
        this.lastName = lastName
        this.age = age
    }

    fun getFullName():String{
        return "$firstName $lastName $age"
    }
}
class Bird{
    // property(속성)
    var name:String = "mybird"
    var wing:Int = 2
    var vol:String = "short"
    var color:String = "blue"

    fun fly() = println("fly wing: $wing")
    fun sing(vol:String) = println("sing vol: $vol")
}

자바클래스와 다른점

- 자료형들이 뒤로가있다.

- 변수 초기화를 할 수 있다.

 

 

DTO / VO 를 단순히 선언만 하고싶을 경우

// DTO, VO
data class Human(val id:String, var password:String, val name:String)
{
    fun getFullName():String{
        return "$id $password $name"
    }
}

이렇게 쓴다.

 

- 클래스를 dto로 쓸 경우 클래스명 앞에 data라고 예약어를 쓴다.(안써도 됨)

- 디폴트 인수값을 쓸 수 있다.

 

 

함수호출부

fun main(args: Array<String>) {
    //Person cls = new Person()  -> java
    var cls = Person("길동", "홍", 24)
    cls.firstName = "말순"
    println( cls.getFullName() )

    val user = Human("abc123", "1004", "성춘향")
    println("${user.id}")
    println("${user.name}")
    user.password = "1234"

    // val Human() -> constructor가 없기 때문에 불가능

    val bird = Bird()
    bird.color = "red"
    println("${bird.color}")

    bird.fly()
    bird.sing("long")
}