一、常量和变量
在java定义中定义变量;
int a=2;
a=35;
double price=19.28;
price =20.88;
在Kotlin中等价的定义变量:
var a=2;
a=35;
var price=19.28;
price =20.88;
Kotlin的只读变量:
//在Java的函数中定义局部常量:
final int b=3;
//等价于在Kotlin函数里定义局部常量:
val b=3;
//但是,如果在类中将val b定义为成员属性时,它就不再是一个常量了,也不能叫常量
//而是叫只读变量,因为它可以定义一个get()方法,每次读出来会返回不同的值:
class Student{
val score:int //只读变量
get(){
return (Math.random()*100).toInt();
}
}
所以,val定义的量统一称作只读变量。
编译期常量
//Java编译期常量定义:编译时完成初始化赋值,初始化完成后不可修改
static final int b=3;
/**
* Kotlin中编译期常量:编译时完成初始化赋值,初始化完成后不可修改
* 只能定义在全局范围;
* 只能修饰基本数据类型;
* 必须立即用字面量初始化;
**/
const val b=3
总结:
给 Java程序员的提示: 编译期常量(const val)相当于Java中public final static所修饰的常量。而运行期常量(val)相当于Java中final所修饰的常量。
常量引用
在声明引用类型使用val ,对象的引用不会被修改,但是引用内容可以修改,这样会更加安全,也符合函数式编程的技术要求