美文网首页
9. 属性与字段

9. 属性与字段

作者: 努力生活的西鱼 | 来源:发表于2023-08-02 18:32 被阅读0次
1. 属性的基本使用
val id: String = "123"

var name: String? = "kotlin"

var age: Int? = 22

var sex: String? = "男"

var weight: Float? = 120.5f
2. getter()和setter()

演示getter()和setter()

class Test {

    // 当用var修饰时,必须为属性赋默认值,即使在有getter()的情况下,不过这样写出来,不管如何修改,其值都为123
    var test1: String = " "
        get() = "123"
        set(value) {field = value}

    // 用val修饰时,用getter()函数时,属性可以不赋默认值,但是不能有setter()函数
    val test2: String
        get() = "123"  // 等价于 val test2 = 123

}

2.1 自定义getter()和setter()

class Mine {

    private val size: Int = 0

    val isEmpty: Boolean
        get() = this.size == 0

    val num: Int = 2
        get() = if (field > 5) 10 else 0

}

val mine = Mine()
println("isEmpty = ${mine.isEmpty}")  // isEmpty = true
println("num = ${mine.num}")  // num = 0
class Mine {

    var str1: String = "test"
        get() = field
        set(value) {field = if (value.isNotEmpty()) value else "null"}

    var str2: String = ""
        get() = "随意怎么修改都不会改变"
        set(value) {field = if (value.isNotEmpty()) value else "null"}

}

println("str1 = ${mine.str1}")  // str1 = test
mine.str1 = ""
println("str1 = ${mine.str1}") // str1 = null
mine.str1 = "kotlin"
println("str1 = ${mine.str1}") // str1 = kotlin

println("str2 = ${mine.str2}") // str2 = 随意怎么修改都不会改变
mine.str2 = ""
println("str2 = ${mine.str2}") // str2 = 随意怎么修改都不会改变
mine.str2 = "kotlin"
println("str2 = ${mine.str2}") // str2 = 随意怎么修改都不会改变

相关文章

  • 属性与字段

    回到目录项目源码 kotlin-class 项目 属性必须初始化, 如果没有直接赋值, 就必须写进构造函数中 声明...

  • 13、Django_rest framework_序列化器和自定

    一、序列化器中的类属性字段 序列化中所定义的类属性字段,一般情况下与模型类字段相对应 默认情况下,这些类属性字段既...

  • Kotlin 属性与字段

    声明属性 Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的。 使...

  • kotlin属性与字段

    借鉴kotlin中文站 声明属性 Kotlin类中声明属性,即可用关键字var声明成可变的,又可以用关键字val声...

  • kotlin属性与字段

    一:声明属性 kotlin类中属性可以使用关键字var也可以使用val,使用一个属性只需要在类实例后引用即可 二:...

  • Mybatis resultMap

    自动装配:多对一 可以不写其他字段与属性的映射,但被使用多次的字段必须写, 还有不写其他字段与属性只适用于N+1 ...

  • Kotlin 数据类

    功能 自动声明与构造函数入参同名的属性字段 自动实现每个属性字段的get/set方法 自动提供equals方法,比...

  • MySql基本操作语句(不包含查询)

    数据操作 1.添加记录 不列出属性字段 列出属性字段 一次性插入多条数据,可以列出属性字段名 也可以不列出属性字段...

  • (五)属性与私有字段

    一、属性是什么 1. 基本概念 字段:类变量和实例变量属性:对普通方法修饰后实现特定的功能 在实例方法前添加装饰器...

  • kotlin的属性与字段

    属性与字段 在kotlin中声明属性可以用var,val声明,其中var声明的是一个可变的变量,val声明是只读的...

网友评论

      本文标题:9. 属性与字段

      本文链接:https://www.haomeiwen.com/subject/kceppdtx.html