首先,你说“是不是说在程序中定义变量时初始化为常量就确定了值”只能说定义为常量,而不能说初始化为常量,没有这一说法,我猜你应该是说,定义常量时,当初始化对像时,常量就确定了值是吗。
其次,常量是用final来修饰,当变量修饰为final时,变量就变成了常量,而如果再使用static时,就变成了静态常量,可以用类名直接访问的。
再次,final和static的区别是final修饰的变量,其值不能被修改,其值必在在声明时或在构造函数中确定其值,必须使用对象名才能调用。而static修饰的变量,只能说明它是一个静态变量,可以用类名直接调用而已,它的值是可以随时改变的,其他的和变量没什么区别。当两个组合在一起时,就变成了静态常量。即不能修改其值,可以直接用类名访问,也可以用对象名访问,推荐用类名访问。 |