주 생성자를 만들면 클래스의 필드가 알아서 생성된다.
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 }}