3.5 常量

前两节详细介绍了关于Java语言中变量的定义和初始化功能,通过学习我们了解到变量主要用来存储数值,该数值可以变化,即变量在程序运行期间是可以变化的。从程序开始运行到结束为止,肯定有保持不变的量,它们由谁来存储呢?这就涉及Java语言中的常量。

在Java程序设计中,使用关键字“final”来声明一个常量。常量表示在程序开始运行到结束期间都不变的量。

【实例3-13】例如下面的程序代码。

01        //这里的X是一个常量,由于是不在某个方法内的常量,也可以称为成员常量(作者给它取的名字)
02        public class Var2                                                           //定义一个Var2类
03        {
04            final int X=20;                                                         //定义了一个常量X
05            public static void main(String[] args)                                  //主方法
06            {
07                Var2 m=new Var2();                                                  //创建对象m
08                System.out.println(" 打印数据X="+m.X);                              //输出常量X的值
09            }
10        }

【代码说明】第4行通过关键字final定义了一个常量X。第8行输出这个常量的值。

注意 常量名一般都定义为大写字母。

【运行效果】

打印数据X=20

【实例3-14】如果要声明一个类常量,就需要使用关键字static和final的组合,例如下面的例子。

01        //这里的X是类常量,所以无论是哪个对象的引用,它的值始终不变
02        public class Var3                                                         //定义一个Var3类
03        {
04            static final int X=20;                                                //定义了一个类常量X
05            public static void main(String[] args)                                //主方法
06            {
07                System.out.println(" 打印数据X="+X);                               //输出类常量X的值
08            }
09        }

【代码说明】第4行使用关键字static和final的组合,定义了类常量X。第7行在没有实例化对象的情况下,直接在控制台输出X的值。

【运行效果】

打印数据X=20

从上面的例子可以看出,如果这个常量是类常量,那么无须再构造对象,可以直接引用这个常量。前一个例子声明的常量是一般常量,不是类常量,所以一定要构造对象,通过对象来引用这个常量,所以切记类常量和一般常量的区别所在。