在程序运行过程中一直不会改变的量称为常量(constant),通常也被称为“final变量”。常量在整个程序中只能被赋值一次。在为所有对象共享值时,常量是非常有用的。
在Java语言中声明一个常量,除了要指定数据类型外,还需要通过final关键字进行限定。声明常量的标准语法为:
final 数据类型 常量名称[=值]
说明:常量名通常使用大写字母,这也符合Java编码规范,但这并不是必须的,声明常量时,完全可以和变量名一样使用小写字母。但是,那样容易造成混淆,降低代码可读性,所以才有规范要求常量名全部大写,并使用“_”下划线字符分割多个单词。
例 声明常量,实例代码如下:
final double PI = 3.1415926D; //声明double型常量PI并赋值
final boolean
BOOL = true; //声明boolean型常量BOOL并赋值
当定义的final变量属于“成员变量”,则必须在定义的时候就设定它的初值。否则将会有编译错误。下面的实例可看出变量与常量的区别。
例 在项目中创建类Part,在类体中创建变量age与常量PI。在主方法中分别将变量与常量赋值,通过输出信息可测试变量与常量的有效范围。
public class Part { //新建类Part
static final double PI = 3.14; //声明常量PI,此时PI如不对其进行赋值,则会出现错误提示
static int age = 23; //声明int型变量age,并进行赋值
public static void main(String[] args) { //主方法
final int number; //声明int型常量number
number = 1235; //对常量进行赋值
age = 22; //再次对变量进行赋值
//number = 1236; //错误的代码,因为number为常量,只能进行一次赋值
System.out.println("常量PI的值为:" + PI); //将PI的值输出
System.out.println("赋值后number的值为:" + number); //将number的值输出
System.out.println("int型变量age的值为:" + age); //将age的值输出
}
}
运行结果如图1所示。
图1 的运行结果