생성자 매개변수
- 클래스의 초기화(
init
) 블록, 클래스 프로퍼티에서는 접근이 되지만, 클래스에 정의된 함수에서는 사용불가
class User(name: String, age: Int) {
init {
// 객체가 생성되는 순간 생성자 초기화
println("init... name: $name, age: $age") // OK
}
val upperName = name.toUpperCase() // OK
fun sayhello() {
println("hello $name") // [!] error
}
}
- 주 생성자 내에서
var
, val
을 이용해서 매개변수를 선언하면 클래스 멤버가 됨 (보조 생성자는 해당안됨)
class User(val name: String, val age: Int) { // name, age는 멤버변수가 됨
val upperName = name.toUpperCase()
init {
println("init... name: $name, age: $age") // OK
}
fun sayHello() {
println("hello $name") // OK
}