MST
星途 面试题库

面试题:Kotlin属性与字段:访问器自定义

在Kotlin中,如何自定义属性的getter和setter访问器?请给出一个示例,假设有一个表示温度的属性,当设置温度时,如果温度超出正常范围(0 - 100),则抛出一个异常。
45.7万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
class Temperature {
    private var _temperature: Int = 0

    var temperature: Int
        get() = _temperature
        set(value) {
            if (value < 0 || value > 100) {
                throw IllegalArgumentException("温度超出正常范围(0 - 100)")
            }
            _temperature = value
        }
}

你可以这样使用它:

fun main() {
    val temp = Temperature()
    try {
        temp.temperature = 50
        println("当前温度: ${temp.temperature}")

        temp.temperature = 150
    } catch (e: IllegalArgumentException) {
        println(e.message)
    }
}