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 是私有的
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 04:42:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 04:42:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 04:42:02       58 阅读
  4. Python语言-面向对象

    2024-07-18 04:42:02       69 阅读

热门阅读

  1. 网络安全-网络安全及其防护措施1

    2024-07-18 04:42:02       21 阅读
  2. SQL用户权限正则表达式设计思路

    2024-07-18 04:42:02       20 阅读
  3. C++ Primer:2.6 自定义数据结构

    2024-07-18 04:42:02       27 阅读
  4. 【Docker】镜像构建和容器部署

    2024-07-18 04:42:02       21 阅读
  5. 力扣刷题(自用)

    2024-07-18 04:42:02       25 阅读
  6. 无需安装jadx-gui,获取app公钥和MD5

    2024-07-18 04:42:02       23 阅读
  7. elasticsearch源码分析-05分片分配

    2024-07-18 04:42:02       17 阅读
  8. 营销策划方案怎么写?

    2024-07-18 04:42:02       21 阅读
  9. 中国高端水果元宇宙

    2024-07-18 04:42:02       19 阅读
  10. 牛客多校暑期第一场

    2024-07-18 04:42:02       18 阅读
  11. 记一次Mysql连接失败的处理过程

    2024-07-18 04:42:02       28 阅读