이에 대한 해법은 생성자 파라미터의 값을 저장할 멤버 프로퍼티를 정의하는 것이다.
class Person(firstName: String, familyName: String) {
val firstName = firstName // firstName은 생성자 파라미터를 가리킴
val fullName = "$firstName $familyName"
fun printFirstName() {
println(firstName) // Ok: 여기서 firstName은 멤버 프로퍼티를 가리킴
}
}
하지만 코틀린은 간단하게 생성자 파라미터의 값을 멤버 프로퍼티로 만들 수 있는 방법을 제공한다.
class Person(val firstName: String, familyName: String) {
// firstName은 생성자 파라미터를 가리킴
val fullName = "$firstName $familyName"
fun printFirstName() {
println(firstName) // firstName은 멤버 프로퍼티를 가리킴
}
}
fun main() {
val person = Person("John", "Doe")
println(person.firstName) // firstName은 프로퍼티를 가리킴
}