주 생성자를 만들면 클래스의 필드가 알아서 생성된다.
class User(var username: String)
정말 간단하다!
접근자 메서드인 getter
와 setter
는 코틀린이 알아서 만들어준다.
class User(
var name: String
val age: Int
)
읽기 전용 필드를 만들 수도 있다.
var
대신 val
을 앞에 붙여 선언하면, getter 함수만 생성된다.
val은 수정할 수 없는 필드기 때문에, final과 비슷하다.
필드에 접근할 때는 그냥 변수에 접근하듯이 사용하면, 코틀린에서 내부적으로 접근자 메서드를 사용하는 것 처럼 작동한다.
class User(
var name: String
val age: Int
)
fun main(args: Array<String>) {
val user = User("user", 17)
user.username = "useruser"
println("username : ${user.name}")
println("age : ${user.age}")
}
getter/setter를 원하는 대로 정의할 수도 있다.
class Rectangle(
val height: int,
val width: int
) {
val isSquare: Boolean
get() {
return height == width
}
}