fun main() {
var p1 = Person("person1")
var p2 = Person(age=5)
var p3 = Person("person2",32)
println(p1.isAdult)
println(p2.isAdult)
println(p3.isAdult)
}
class Person (
// ์ฃผ์์ฑ์
val name: String = "ํ๊ธธ๋",
var age: Int = 3) {
/*
val name: String = name
get() = field.uppercase()
*/
// ์ name.uppercase()๊ฐ ์๋๋๋ฉด
// getํธ์ถ ๋๋ฉด name์ด ํธ์ถ ๋๋๋ฐ ๊ทธ๋ฌ๋ฉด ๋ get()์ด ํธ์ถ๋๊ณ ๊ทธ์์ ๋ name์ด ํธ์ถ๋๊ณ ... ๋ฌดํ๋ฃจํ
// ๊ทธ๋์ field๋ก ๋ช
๋ช
(backing field)
// Customer setter๋ ์ฌ๋งํ๋ฉด ์์ด๋ค.
/*
var name: String = name
set(value) {
field = value.uppercase()
}
*/
val upperCaseName: String
get() = this.name.uppercase()
init {
//println("init ํธ์ถ")
if(age<=0) {
throw IllegalArgumentException("๋์ด๋ ${age}์ผ ์ ์์ต๋๋ค.")
}
}
// ๋ถ์์ฑ์ (์ฃผ์์ฑ์ ์ฌ์ฉ ๊ถ๊ณ )
/*
constructor(name: String): this(name, 1) {
// Body๋ ๋ง๋ค์ ์์
//println("๋ถ์์ฑ์")
}
constructor(age: Int): this("๋ฌด๊ธฐ๋ช
", age)
*/
//fun isAdult()=age>=20
// ์ปค์คํ
getter (ํ๋กํผํฐ์ฒ๋ผ ์ด๋ค)
val isAdult: Boolean
get() = this.age >= 20
}