千家信息网

怎样解析Kotlin属性

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇文章给大家分享的是有关怎样解析Kotlin属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Kotlin类中可以有属性。属性可以用
千家信息网最后更新 2025年01月18日怎样解析Kotlin属性

本篇文章给大家分享的是有关怎样解析Kotlin属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

在Kotlin类中可以有属性。属性可以用关键字var声明为可变的,否则使用只读关键字val

属性

1.属性定义

使用var关键字声明可变的属性,属性包含默认的getter和setter方法

class PropertyAndField {    var propertyA: String = ""    var propertyB: String = ""}

如果类型有具体的值,其类型可以省略

var name = "zhangsan"

使用val关键字声明只读属性,val声明的变量不允许有setter方法,默认有getter方法

class Address {    //默认getter和setter    var name: String = "zhangsan"    //默认只有getter方法    val readonly = "readonly"}

使用属性

fun main(args: Array) {    var address = Address()    //访问属性,自动调用其getter方法    address.name    address.readonly}

2.自定义getter和setter

class Address2 {    //自定义了setter方法 setter属性可以不被初始化    var name: String        get() = this.name        set(value) {            this.name = value        }}

省略属性的类型。在getter方法可以推断出属性的类型时可以省略

val no get() = 23

对于val声明的属性只能有getter方法

val readonly: String    get() = "readonly"    //set(value){this.readonly = value}  错误。val属性不能有setter

改变属性访问器的可见性

class Address3 {    var name: String = "lisi"        private set   //改变默认setter方法的可见性    var no: Int = 22        private set(no){this.no = no}  //改变自定义setter方法的可见性}

编译期常量

已知类型和值的属性可以标记为编译期常量。有以下几点要求

  1. 位于顶层或者是 object 的一个成员

  2. 类型为String或原始类型

  3. 没有自定义getter

编译器常量使用const修饰符来标记

const val CONST_NO = "success"

延迟初始化属性

当属性声明为非空的必须在构造函数中初始化。但是这很不方便,例如属性可以通过依赖注入来初始化,或者使用单元测试的setup注解初始化。你仍然想在类体中引用该属性时避免空检查。这个

时候可以使用lateinit修饰符来标记属性

class Order {    lateinit var address: Address}

以上就是怎样解析Kotlin属性,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

属性 方法 类型 关键 关键字 常量 标记 编译 更多 知识 篇文章 可变 原始 实用 函数 单元 变量 只有 可以通过 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 2000汉字数据库字段长度 时代互联网络科技有限公司 软件开发男生有先天优势吗 如何修改数据库中表的字符集 汇聚交换机服务器alm灯亮红灯 精易阿里妈妈采集软件开发 校园内网络安全案例 软件开发的限制 广轻计算机网络技术专业就业 培训管理手机软件开发 网络安全纵深防御意思 jsp调取数据库图片 库存网络技术检查 华为 网络技术工程师干嘛的 幻想三国如何修改数据库 服务器镜像登录 常州银联软件开发欢迎咨询 数据库报警206 普陀区正规数据库系统销售要求 数据库状态码是什么原因 暗黑2重制版服务器在哪里 关于网络安全的主题手抄报 2010数据库窗体查询怎么设计 云服务器可以用来跑代码吗 客户机服务器模式和对等模式 服务器机房有烧焦的味道 数据库结课论文 改行从事云计算软件开发难吗 网络关键设备和网络安全用什么 联想服务器市场怎么样
0