美文网首页Android Kotlin
Kotlin入门(一):变量的声明和使用

Kotlin入门(一):变量的声明和使用

作者: 无余 | 来源:发表于2018-04-03 14:48 被阅读31次

变量声明

  • 只读变量
    可理解为Java中常量,使用 val 关键字修饰
val a: Int = 1  //在声明的时候直接赋值
val b = 2   // 类型是明确的,变量类型Int可省去
val c: Int  // 在声明时没有赋值,变量类型Int不可省去
c = 3       // 只可赋值一次,此后c值不能再变
  • 易变变量
    可理解为Java中的普通变量,用 var 关键字修饰,与 val 变量的区别是变量的值可变:
var a=0
a=1
a=3
  • 成员变量
    与Java一样,通过对象.变量名的方式调用:
fun main(args: Array<String>) {
    print(Test().property)
}

class Test{
    var property="property"
}
  • 静态变量
    用companion object{}包裹,与Java一样通过类名.变量名的方式调用,关于companion object后面会详细讲解:
fun main(args: Array<String>) {
    print(Test.com)
}

class Test{
    companion object{
        var com="com"
    }
}

  • 顶级变量
    在类的外部声明,可理解为Java中的静态成员变量。
    通过包名.变量名的方式来调用
    样例:
package a.b.c
var top = "top"
fun main(args: Array<String>) {
    print(a.b.c.top)
}
  • 静态变量与顶级变量的区别:
    通过反编译可以知道,其实他们不在一个类中。
    当文件中有顶级变量,编译时会新生成一个[文件名+kt]的类,顶级变量就在其中。

Getters and Setters

通过反编译可知,编译过程会生成对应的setter和getter方法。
如果变量var类型,则生成setter和getter方法,如果是val类型则只生成getter方法。
我们不能直接调用getter和setter方法,其实当我们对变量进行操作时,本质上就是调用了这些方法。


我们也可以自定义getter和setter方法

  • 语法
<var <propertyName>[: <PropertyType>] [= <property_initializer>]
    [<getter>]
    [<setter>]

当给变量赋值时会调用setter方法,调用变量得到的是getter中的返回值
样例:

var name: String = "111"
    get() {
        return "{$field}"
    }
    set(value) {
        field = "[$value]"
    }

fun main(args: Array<String>) {
    println(name)
    name = "222"
    print(name)
}

结果:

{111}
{[222]}

通过反编译可知,如对于上面的name变量,编译过程会生成

    public static final String getName() {
        return '{' + name + '}';
    }

    public static final void setName(@NotNull String value) {
        Intrinsics.checkParameterIsNotNull(value, "value");
        name = '[' + value + ']';
    }
  • 注意:
    根据上面这一特点,我们不能自己去创造变量对应的setter,getter方法,如上面声明了name变量,
    我们就不能创造getName()和setName(name:String)方法。

相关文章

  • Kotlin语法一

    1.常量和变量 Kotlin 中,使用val 声明常量,使用 var声明变量。 Kotlin 具有自动类型推断的特...

  • Kotlin入门(一):变量的声明和使用

    Kotlin系列0.【翻译】Using Kotlin for Android Development1.Kotli...

  • 第一行代码 -- 笔记1

    一、快速入门 Kotlin 编程 1.变量和函数 变量 在 Kotlin 中定义一个变量,只允许在变量前声明两种关...

  • Kotlin基础学习

    变量和函数:kotlin支持不声明变量的类型,由结果自动推导,注意kotlin变量的声明使用的var,val关键字...

  • Kotlin秘籍之变量

    Kotlin中怎样声明一个变量 kotlin中声明变量需要使用val和var关键字 例如: var 和 val的区...

  • Kotlin学习

    1.变量的声明和使用 var 声明变量 val 声明常量 kotlin的数据类型:Byte Short In...

  • 02. 常量、变量

    在 kotlin 中常量和变量使用不同的关键字声明常量使用 val变量使用 var常量和变量在声明的时候,都可以没...

  • Kotlin学习之声明常量与变量

    Kotlin学习之声明常量与变量 @(Kotlin学习) 一、声明格式 Kotlin中声明常量和变量的方式与Jav...

  • Kotlin的基础类型(一)

    声明变量 Kotlin是强类型语言,Kotlin要求所有的变量必须先声明后使用,声明变量时必须显式或隐式的指定变量...

  • Kotlin-入门(二)

    上一篇文章《Kotlin-入门》写了kotlin的介绍、HelloWorld、函数定义、变量声明、各种注释以及字符...

网友评论

本文标题:Kotlin入门(一):变量的声明和使用

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