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

2019-03-21  本文已影响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---------------------------

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

上一篇下一篇

猜你喜欢

热点阅读