美文网首页
Day01之Kotlin的变量、常量、注解

Day01之Kotlin的变量、常量、注解

作者: 鹅鹅鹅曲项向天歌呀 | 来源:发表于2019-03-21 15:49 被阅读0次

    本文及以后文章使用的开发工具:IDEA ,自行安装

    1、变量
    2、常量
    3、注解

    一、变量

    关键字: varval
    两者区别:

    var val
    相当于Java中的普通变量 相当于java中的final修饰变量

    定义格式:
         关键字 变量名 : 数据类型 = XXX
    Demo:

         //var:
    
        //立即初始化
        var a: Int = 10
        //自动推出类型b为int类型,同时String,boolean...一样
        var b = 10
       //没有初始化的时候,必须声明类型
        var c: Double
        c = 4.21
        c += 1
        println("var变量:\n \t a=$a,\t b=$b, \t c=$c")
    
        //val
    
        // 立即初始化
        val d: Int = 10
        // 自动推出类型b为int类型,同时String,boolean...一样
        val e = 10
        // 没有初始化的时候,必须声明类型
        val f: Float
        f = 5.21F
        //f+=1             //此句报错,因为c是常量,只能复制一次(相当于fianl)
    
        println("val常量:\n \t d=$d,\t e=$e,\t f=$f")
    

    打印结果:


    结果图

    ps: $ 符号表示引用的意思

    二、声明可为空( ?)的变量

    关键字: ?
    定义格式:
        
    var/val 变量名 : 类型? = null/确定的值*
    Demo:

        var g: Int? = 10
        val h: String? = null
        println("可为空的变量:\n \t g=$g,\t h=$h")
    

    打印结果


    结果图.png

    三、lateinit 和 lazy{}

    3.1、 lateinit 后期初始化属性
     1、lateinit 只能修饰用 var 修饰的变量
     2、不能修饰可为 null 的变量
     3、不能修饰基本数据类型,intdouble等等,但是 String(引用数据类型)是可以的
     4、声明的变量,必须赋值后才能使用,否则报异常UninitializedPropertyAccessException(未初始化的属性访问异常)
    Demo:

    class Test {
        lateinit var name: String
    
    }
    fun main(args: Array<String>) {
        var test = Test()
        test.name = "我是 kotlin"
        var name = test.name
        println("$name")
    }
    
    

    打印结果

    结果.png
    3.2 、lazy{ } 延迟初始化属性
     1、延迟初始化指当程序在第一次使用到这个变量(属性)的时候在初始化。
     2、不能用于类型推断,且该函数在变量的数据类型后面,用 by 链接。
     3、只能修饰用 val 声明的变量
    Demo:
        //声明一个延迟初始化的字符串
        val str: String by lazy { "延迟初始化" }
        println("$str")
    

    打印结果:


    结果图.png

    四、常量

    关键字:const
     1、const只能修饰val,不能修饰var

    4.1、声明常量的三种方式:
     1、在顶层声明
     2、在object修饰的类中声明,在kotlin中称为对象声明,它相当于Java中一种形式的单例类
     3、在伴生对象中声明
    在object的对象声明和伴生对象中:

    kotlin java
    val private static final
    const val public static final

    ps:object 这个关键字,可用来,对象声明(相当于单例),伴生对象(相当于java中的静态变量),对象表达式(匿名内部类),这里先提一下,以后详细写
    在普通的类中:

    kotlin java
    vasl final

    Demo:

    const val AA: String = "顶层声明"
    class Demo {
        companion object {
            const val CC: String = "伴生对象"
        }
    }
    object Demo2 {//object是个关键字,可修饰类
        const val BB = "object修饰的类中"
    
    }
    fun main(args: Array<String>) {
        println("AA = $AA")
        println("BB = ${Demo2.BB}")
        println("CC = ${Demo.CC}")
    }
    

    打印结果


    结果图.png

    五、注释

    1、单行注释
    2、多行注释
    3、嵌套注释(这是和java的区别)
    Demo

      //单行注释
      
      /**
         * 多行注释
         * */
        /*
    
         第一层块注释
         /*
             第二层块注释
             /*
                 第三层快注释
                 这种注释方式在java中是不支持的,但是在kotlin中是支持的。算是一个亮点吧(貌似意义不大)。
              */
          */
      */
    

    ----------------------------THE END---------------------------

    持续写更多....慢慢来咯~~~

    相关文章

      网友评论

          本文标题:Day01之Kotlin的变量、常量、注解

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