YSHUSH

Getter & Setter 본문

Coding/Kotlin

Getter & Setter

코딩; 2022. 1. 26. 07:52

게터와 세터 형식

- field의 사용 (변수 자신을 가리킨다.)

class User(_id:Int, _name:String, _age:Int){
    var id:Int = _id
        get() = field

    var name:String = _name
        get() = field
        set(value){
            println("name setter")
            field = value.toUpperCase()
        }

    var age:Int = _age
        get(){
            return field
        }
        set(v){
            field = v
        }
}

커스텀 setter

class FakeAge{
    var age:Int = 0
        set(value){
            field = when{
                value < 18 -> 18
                value in 18..30 -> value
                else -> value - 3
            }
        }
    override fun toString(): String {
        return "FakeAge(age=$age)"
    }
}

함수호출부

fun main(args: Array<String>) {

    val user = User(1, "Tom", 18)
//    user.id = 11            // setter
//    val name = user.name    // getter
    val id = user.id
    println(id)

    user.name = "Anne"

    val kim = FakeAge()
    kim.age = 15
    println(kim.toString())		// 결과값 = FakeAge(age=18)

    val lee = FakeAge()
    lee.age = 36
    println(lee.toString())		// 결과값 = FakeAge(age=33)
}

'Coding > Kotlin' 카테고리의 다른 글

가위바위보 게임  (0) 2022.01.26
Lazy  (0) 2022.01.26
보조 생성자  (0) 2022.01.26
접근지정자  (0) 2022.01.26
클래스  (0) 2022.01.26