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


本文深入探讨了Kotlin中变量声明的多种方式,包括constval、val和var的区别,通过具体示例和反编译代码详细解析了这些声明在实际应用中的行为差异,帮助读者更好地理解和使用Kotlin的变量管理特性。
456

被折叠的 条评论
为什么被折叠?



