常量和变量
val:只读变量(只读,不可变化)
var:变量
const val: 常量
常量不能在函数中使用,只能在方法外面使用,比如:const val USERNAME: String = "里斯"
fun main() {
}如果在类中使用的话,比如:class Hello {const val USERNAME: String = "里斯"
}这种做法是不被允许的,它在源码阶段就直接报错,因为外界根本无法用类直接访问该常量,为了让外界能用类访问常量,可以改成:object Hello {const val USERNAME: String = "里斯"
}访问方式:Hello.USERNAME被 object 修饰的类相当于将该类的成员变量和成员方法都添加了java的static的关键字。一般情况下,将类中所有的成员都static化很少见,甚至不可取,所以我们可以将类中的部分成员static化,使用kotlin的伴生 companion object 可以实现:class Hello {companion object {const val USERNAME: String = "zhangsan"}
}在类中,凡是 companion object 闭包下的成员在外接都可以直接通过类访问。
不在companion object 闭包下的成员在外界无法直接用类访问。