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")
}