[Kotlin] Class

์œ ์กด๋Œ๋Œ์ดยท2023๋…„ 3์›” 21์ผ
0

Kotlin

๋ชฉ๋ก ๋ณด๊ธฐ
1/10
post-thumbnail
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
}

0๊ฐœ์˜ ๋Œ“๊ธ€

Powered by GraphCDN, the GraphQL CDN