kotlin get set

在 Kotlin 中,如果想实现一个类的属性可以从外部读取但不能修改,可以使用自定义的 getter 和 private setter。以下是一个示例代码:

复制代码
class MyClass {
    var myProperty: String
        private set // 使 setter 私有化,外部无法修改
        get // 默认 getter

    constructor(initialValue: String) {
        myProperty = initialValue
    }
}

fun main() {
    val myObject = MyClass("Initial Value")
    println(myObject.myProperty) // 可以读取属性a
    // myObject.myProperty = "New Value" // 这行代码将会导致编译错误,因为 setter 是私有的
}

在这个示例中,myProperty 的 getter 是公共的,因此可以从类的外部读取该属性。但是,setter 是私有的,因此无法从外部修改该属性。

如果需要进一步自定义 getter 或 setter,也可以这样做:

复制代码
class MyClass {
    var myProperty: String
        private set(value) {
            field = value // 自定义 setter
        }
        get() = field // 自定义 getter

    constructor(initialValue: String) {
        myProperty = initialValue
    }
}

fun main() {
    val myObject = MyClass("Initial Value")
    println(myObject.myProperty) // 可以读取属性
    // myObject.myProperty = "New Value" // 这行代码将会导致编译错误,因为 setter 是私有的
}
相关推荐
字节高级特工7 分钟前
智能指针原理与使用场景全解析
开发语言·c++·算法
码界索隆10 分钟前
Python转Java系列:面向对象基础
java·开发语言·python
逻辑星辰15 分钟前
x-ds-pow-response逆向分析
开发语言·人工智能·python·深度学习·算法
AI科技星35 分钟前
《全域数学/数术工坊》体系总览
c语言·开发语言·汇编·electron·概率论
范什么特西36 分钟前
Maven中dependencies和dependencyManagement区别
java·开发语言·maven
techdashen37 分钟前
Rust 项目进展月报:2026 年 1 月
开发语言·后端·rust
AI行业学习39 分钟前
CC‑Switch v3.16.1 免费下载(Windows+macOS+Linux)、使用方法【2026.6.11】
linux·开发语言·windows·python·macos·前端框架·html
攻城狮Soar1 小时前
STL源码解析之deque
开发语言·c++
LDR0061 小时前
宠物电器供电革新:USB-C PD标准化,重塑30-65W设备体验
c语言·开发语言·宠物
张忠琳1 小时前
【Go 1.26.4】Golang Interface 接口深度解析
开发语言·golang