Kotlin基础教程之伴生对象,getter,setter,内部,局部,匿名类,可变参数

发布时间 - 2026-01-11 01:25:07    点击率:

先来看一个名为Message的类

在这个类中有一段包含在companion object中的代码,需要说一下的是,Kotlin的class并不支持static变量,所以需要使用companion object来声明static变量,其实这个platformStatic变量也不是真正的static变量,而是一个伴生对象,

这个伴生对象位于Message类中定义的一个叫做Companion的内部类中,如图:


可以看到在Kotlin中编译器自动生成类是很常见的事情,那么这个伴生对象作何理解呢?

我的理解是,伴生对象与单例模式相关,这个对象是Companion类的对象,伴随着Message类而生.

Companion这个内部类是编译器自动生成的,我们也可以自己定义内部类,如:


回到Message类中,我们可以看到在info和what域下还存在get和set,不错,这就是getter和setter函数,一般getter函数使用默认的就好,setter函数其实就是在赋值的时候进行一些处理,为了防止setter函数无限递归调用,在类中可以使用$符号访问成员变量,可以绕过getter和setter函数直接访问成员变量.

当然,在Kotlin中除了内部类,还有匿名类和局部类,如图:

匿名类:

可以看到r这个变量所属类型是匿名的(no name provided)

局部类:


局部类,就是在函数内部定义的类,只在函数内部可以访问.

在Kotlin中还提供了一些额外的特性,比如可变参数

这段代码运行结果如下:

让我们测试一下Message类:

可见Kotlin的getter和setter所起的作用

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Kotlin  # getter  # setter  # 内部  # 局部  # 匿名类  # kotlin中数据类重写setter getter的正确方法  # 类中  # 可以看到  # 如图  # 递归  # 自动生成  # 的是  # 就是在  # 在这个  # 让我们  # 这就是  # 就好  # 这段  # 希望能  # 可以使用  # 只在  # 谢谢大家  # 而生  # 为了防止  # 所起  # 测试一下 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何为不同团队 ID 动态生成多个非值班状态按钮  如何确保FTP站点访问权限与数据传输安全?  Laravel安装步骤详细教程_Laravel环境搭建指南  jQuery 常见小例汇总  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel怎么清理缓存_Laravel optimize clear命令详解  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  浅谈javascript alert和confirm的美化  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  音乐网站服务器如何优化API响应速度?  如何快速配置高效服务器建站软件?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Android利用动画实现背景逐渐变暗  PHP正则匹配日期和时间(时间戳转换)的实例代码  Android okhttputils现在进度显示实例代码  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  微信小程序 配置文件详细介绍  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何快速搭建支持数据库操作的智能建站平台?  php json中文编码为null的解决办法  网站建设保证美观性,需要考虑的几点问题!  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Python文件操作最佳实践_稳定性说明【指导】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel distinct去重查询_Laravel Eloquent去重方法  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  使用spring连接及操作mongodb3.0实例  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  音响网站制作视频教程,隆霸音响官方网站?  如何为不同团队 ID 动态生成多个“认领值班”按钮  如何快速查询网站的真实建站时间?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何用低价快速搭建高质量网站?  javascript中闭包概念与用法深入理解