Kotlin编程相关知识点介绍:
本篇内容目录:
- 属性的形式
- 备用字段
- 属性的延迟初始化
- 静态常量属性
属性的形式
在Kotlin中,类的属性分类:
-
可变属性:用var关键字声明的属性
-
只读属性:用val关键字声明的属性
属性的声明语法:
1. val声明的只读对象的语法:
val 属性名 :属性的类型 = 初始化的值
get( ){ return 返回的值 }
注意点:这个val声明语法中没有set()。
2. var声明的可写属性的语法:
var 属性名 :属性的类型 = 初始化的值
get( ){ return 返回的值 }
set( 重新赋的值 ){ }
转成java代码后,val 变量是变成final 修饰的常量,没有set函数,只有get函数。
var 是默认具备set和get函数,都可进行重写。
延迟初始化属性
非空类型的属性,需要初始化. 使用 lateinit 修饰符避免空指针检查。
-
lateinit修饰var的可变属性,可避免非空检查。
-
使用的lateinit的要求:
-
不能使用在构造方法中
-
只能修饰var的可变属性,但是不能修饰val的只读属性
-
修饰的属性不能有自定义的set()和get()
-
属性的类型是非空,且不能是一个基本数据类型
-
lateInit 虽然可以避免空指针检查,但该变量若没有初始化,直接调用会抛出异常。
静态常量属性
-
const修饰一个Object类中的val只读属性或者包级别的val只读属性,可以作为静态常量使用。
-
const修饰的val只读属性,没有自定义get()
const 修饰的val 常量,不会有get函数。等同于java中的static finial 修饰静态常量,被类所共享。