
2.3 常量和变量

视频讲解
在程序中存在大量的数据来表示程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被称为变量和常量。
在程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量还是常量。
2.3.1 常量
常量的值是固定的、不可改变的。有时利用常量来定义如π(3.14159…)这样的数学值。另外,也可以利用常量来定义程序中的一些界限,如数组的长度;或者利用常量定义对于应用程序具有专门含义的特殊值。在Java中,利用关键字final声明常量。
【例2-6】 使用final声明常量。
//文件名:ConstantsExample1.java public class ConstantsExample1{ public static void main(String args[]) { final double M=2.54; double width=8.5; double height=11; System.out.println("paper size in centimeters:"+width*M +"by"+ height*M); } }
关键字final表示这个变量只能被赋值一次。一旦被赋值之后,就不能再更改了。习惯上,常量名使用大写字母。
在Java中,经常希望某个常量可以在一个类的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final设置一个类常量。
【例2-7】 使用static final声明类常量。
//文件名:ConstantsExample2.java public class ConstantsExample2{ public static final double M=2.54; public static void main(string args[]) { double width=8.5; double height=11; System.out.println("paper size in centimeters:"+width*M +"by"+height*M); } }
需要注意,类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。在这个例子中,ConstantsExample2.M就是这样一个常量。
2.3.2 变量
变量是程序的重点,它存储了数据,所有的运算符都与之相关联。离开了变量,操作也就失去了作用的对象。
一个变量的声明包括两部分:变量的类型和变量名。同时要指明变量的作用范围,即变量在什么范围内有效。Java所有的变量都必须有一个数据类型,该数据类型决定了变量的性质及能对该变量所做的操作。
习惯上,变量名以Unicode字母(国际字符集标准,包括_和$)开头,接下来是任意数量的Unicode字母和数字。为了表达清楚,可以用长字符串代表变量的意义,例如:
String name; int cardID; String passWord; int money;
Java的变量命名要遵从如下的3条规则:
(1)必须由Unicode字符集中的字符组成。
(2)不能与Java语言的关键字相同,或命名成布尔值(true或false)。
(3)在同一个作用范围内,不能有相同名字的两个变量。这条规则暗示我们,在不同的作用范围中可以有同名的变量存在。所谓的变量的作用范围,是指可以存取变量的代码模块。变量的作用范围同时也决定了变量何时产生,何时消灭。在声明变量的同时,实际上也定义了它的范围。
2.3.3 标识符和关键字
1.Java标识符
在Java语言中,标识符是由字母和数字组成的,只能以字母、下画线(_)或美元符号($)开头。由于Java采用的是Unicode字符集(这种字符集不像ASCII字符集采用的是7位编码,而采用的是16位编码,可以包含65536个不同的符号),所以除了常用的26个英文字母外,还可以使用各种其他语言的字母作为标识符,如33个俄语字母、希腊字母等。
在Java语言中标识符的长度没有限制,但是在实际应用中最好不要太长,否则容易产生错误。另外需注意的是,Java语言是区分大小写的,所以在使用标识符作为变量名时一定要注意书写正确。
2.Java关键字
Java语言中有一些特殊的符号,这些符号有特殊的用处,被称为关键字。关键字不能作为标识符使用。目前Java语言一共定义了48个保留关键字,如表2-1所示。这些关键字不能用于变量名、常量名、类名、方法名和接口名的定义。
表2-1 Java关键字表

关键字const和goto虽然被保留但未被使用。除了上述关键字,Java还有以下保留字:true、false、null,这些词是Java定义的值,同样不能用这些词作为标识符。