美文网首页
Kotlin中的变量属性

Kotlin中的变量属性

作者: 王怀智 | 来源:发表于2018-12-04 19:04 被阅读5次

变量的定义

类中的属性可以用val和var来表示
var代表可读写的
val代表只读

案例

    val name: String = "王怀智"
    var age: Int = 12
    var compary: String = "山舟网络"

使用/调用

  Test().name  //不可修改
  Test().age=21
  Test().compary="北京。。"

Getter和Setter

  • var定义的变量,添加get,set
 // ------------------------var定义------②----------------------------
    var testVar: String = ""
        get() = "永远不变"
        set(value) {
            //field是指属性本身,value是约定俗成的
            field = value
        }
    var testVar1: String = ""
        get() = field
        set(value) {
            field = if (value.isNotEmpty()) value else "null"
        }

    fun test1() {
        //***如果get()给定了值后,set()再怎么变化都不会改变值
        testVar = "木有变化"
        testVar1 = "有变化啦"
        println("testVar的值为+$testVar+$testVar1")
        //System.out: testVar的值为+永远不变+有变化啦
    }
  • val 定义变量,添加get,没有set方法
    // ----------------------val定义--------③----------------------------
    /*
    使用了val之后,将没有set()函数
    属性可以默认不赋值,get()必须给定值
     */
    val testVal: String
        get() = "默认不赋值,没有set"

    fun test2() {
        PrintlnUtils(testVal)
        //System.out: 》》》》》
        //System.out: 默认不赋值,没有set
        //System.out: 《《《《《
    }

可访问修饰符

    // ------------------------------④----------------------------
    /*
    属性的可见性修饰
     */
    var varTest3: String = "set不可见"
        private set  //setter()访问修饰符私有化
    var varTest31: String = "get不可修饰为私有化"
    //        private get  //编译器将报错 必须为可见
    val varTest32: String = "val set私有化错误"
    //   private set    //编译错误,本来就没有setter方法
    fun test3(): String {
        /*
        这里可以运行setter方发,但是在Kotlin2().varTest3将不能赋值,因为varTest3是私有化的
         */
        varTest3 = "将报错,无法运行"
        PrintlnUtils(varTest3)
        return varTest3
    }

编译时的常量

// ------------------------------⑤----------------------------
    /*
    编译时的常量
    在java中称为常量 final
    在kotlin中称为常数 const
     */
//    const val VAL_CONST=5
    /*
    直接在类中定义会报错,需要在object中定义
     */
    companion object {
        //这样就不报错了。
        const val VAL_CONST=5
    }

相关文章

  • Kotlin中的变量属性

    变量的定义 类中的属性可以用val和var来表示var代表可读写的val代表只读 案例 使用/调用 Getter和...

  • Kotlin入门(四):关键字之lateinit(笔记)

    在Kotlin中定义变量或者属性都是需要初始化值的,并且其都是private的,但是有些时候对于变量或者属性只需要...

  • Kotlin基础之基本数据类型

    变量 Kotlin中的数据类型 Kotlin中的变量的写法格式 类型推断:Kotlin具有的功能 变量之间的转换:...

  • Kotlin基础知识(一):变量声明与数据类型

    一、Kotlin常量与变量 链接:Kotlin——初级篇(二):变量、常量、注释 1-1、变量 Kotlin中变量...

  • Kotlin学习目录

    Kotlin学习目录 一、Kotlin学习之函数和变量二、Kotlin学习之类和属性三、Kotlin学习之枚举和W...

  • kotlin基本数据类型

    在 Kotlin 中,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数和属性。Kotlin 的基本...

  • Kotlin 变量和属性

    变量 var: 变量val: 不可变、线程安全,所以尽量使用val变量 属性 类的属性默认会实现set和ge...

  • Kotlin变量和属性

    基本类型 数字类型中不会自动转型,例如,你不能给Double变量分配一个Int。如果必须分配,就需要给Int做一个...

  • 2017-07-20-使用Kotlin编写的第一个类

    使用Kotlin编写的第一个类 1,变量和属性在Kotlin中,一切都是对象。没有像Java中那样的原始基本类型。...

  • kotlin的属性与字段

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

网友评论

      本文标题:Kotlin中的变量属性

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