一、var和val用来定义变量。
var:可变变量
val:不可变变量
二、companion object(伴生对象)
三、?和!!
?:当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引用可为空。
!!:不为空才能执行。
四、Any
在 Kotlin 中所有类都有一个共同的超类 Any。
五、open
kotlin中类默认不可继承,想要被继承,加open修饰符。
六、延迟初始化 lateinit 和 by lazy
lateinit:
作用:编译时不要因为属性变量未被初始化而报错。
var属性对应lateinit
Kotlin并不支持对原生类型进行lateinit。原因:因为Kotlin会使用null来对每一个用lateinit修饰的属性做初始化,而基础类型是没有null类型,所以无法使用lateinit
val属性对应by lazy
七:Kotlin的类会对每个声明的属性自动生成对应的get/set方法,只读类型的val只有get方法,可变类型的var有get/set方法
-----------------------------------------------------------------------------------------------------------------------------------一 构造函数 (只有一个主构造函数,多个次构造函数)