当前位置: 首页 > news >正文

kotlin get set

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

class MyClass {var myProperty: Stringprivate set // 使 setter 私有化,外部无法修改get // 默认 getterconstructor(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: Stringprivate set(value) {field = value // 自定义 setter}get() = field // 自定义 getterconstructor(initialValue: String) {myProperty = initialValue}
}fun main() {val myObject = MyClass("Initial Value")println(myObject.myProperty) // 可以读取属性// myObject.myProperty = "New Value" // 这行代码将会导致编译错误,因为 setter 是私有的
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • RabbitMQ发布确认及交换机类型
  • SQL Server分布式查询:跨数据库的无缝数据探索
  • vite+vue3项目初始化搭建
  • 避免6大Python高级陷阱,让你的Python代码更优雅
  • 【React Hooks原理 - forwardRef、useImperativeHandle】
  • 【Apollo学习笔记】—— Cyber RT之创建组件, test ok
  • python Requests库7种主要方法及13个控制参数(实例实验)
  • Linux云计算 |【第一阶段】ENGINEER-DAY5
  • MyBatis-Plus的几种常见用法
  • HTML5大作业三农有机,农产品,农庄,农旅网站源码
  • C语言 | Leetcode C语言题解之第239题滑动窗口最大值
  • 线程安全性问题(一)
  • SQL Server性能监控秘籍:数据库性能计数器阈值设置指南
  • 紫光展锐5G安卓核心板T760__国产手机芯片方案
  • 【分布式存储系统HDFS】架构和使用
  • 【剑指offer】让抽象问题具体化
  • Android框架之Volley
  • Angular 响应式表单 基础例子
  • C++类的相互关联
  • classpath对获取配置文件的影响
  • co.js - 让异步代码同步化
  • css布局,左右固定中间自适应实现
  • gcc介绍及安装
  • happypack两次报错的问题
  • mysql中InnoDB引擎中页的概念
  • Redis 中的布隆过滤器
  • Sublime Text 2/3 绑定Eclipse快捷键
  • uni-app项目数字滚动
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 入手阿里云新服务器的部署NODE
  • 深度解析利用ES6进行Promise封装总结
  • 使用权重正则化较少模型过拟合
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # Maven错误Error executing Maven
  • #微信小程序:微信小程序常见的配置传旨
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (WSI分类)WSI分类文献小综述 2024
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (十八)Flink CEP 详解
  • (四) 虚拟摄像头vivi体验
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .cn根服务器被攻击之后
  • .NET : 在VS2008中计算代码度量值
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析