Kotlin中const val、val 以及 val 间在声明变量时的区别
Kotlin 源码 [具体的说明请阅读下面的源码、注释以及反编译后的代码,建议亲自动手研究]
//Kotlin 常量定义 【类似于Java中的 public static final int C = 3;】
const val C = 3
fun main() {
println(KotlinClass().a)
println(KotlinClass().b)
println(C)
println(Companion.COMPANION_CONST_VAL)
println(Singleton.SINGLETON_CONST_VAL)
}
class KotlinClass {
//声明变量a 【类似于Java中的 private int a = 1;】
// $ 如果此变量声明与main()函数同一层级的情况下则为 private static int a = 1; $
var a = 1
//声明只读变量b 【类似于Java中的 private final int b = 2;】
val b = 2
}
class Companion {
/**
* companion object 关键字用于修饰静态函数
*/
companion object {
//在 companion object 成员中声明
const val COMPANION_CONST_VAL = 10;
}
}
/**
* object 关键字用于修饰静态类
*/
object Singleton {
//在静态类中进行常量声明
const val SINGLETON_CONST_VAL = 20;
}
反编译后的代码 [以下代码均通过 jd-gui 进行反编译,部分次要的干扰代码已经删除]
- VariableLearnKt.java 【函数 main() 所在的类】
- KotlinClass.java
- Companion.java
- Singleton.java