
2.3.1 变量
变量是构成表达式的重要部分,变量所代表的内容是可以被修改的。变量包括变量名和变量值,变量名要遵守标识符命名规范。
在Java 10之前声明变量的语法格式为:

其中中括号[]中的内容可以省略,也就是说,在声明变量时可以不提供初始值,如果没有提供初始值,则使用该种数据类型的默认值来初始化变量。
在Java 10之后,引入了局部变量类型推断的功能,允许使用关键字var来进行变量的声明。这种语法格式可以根据初始值的类型自动推断变量的类型,使代码更加简洁和可读。
在Java 10之后声明变量的语法格式为:

使用var关键字声明变量,而且声明的同时要初始化。注意var只能声明局部变量,不能声明成员变量。
示例代码如下:

上述代码运行结果如下:

代码解释如下:
代码第①处是用于声明包的,指定了当前Java文件所属的包为demo2_3_1,有关包的概念将在2.5.2节详细介绍。
代码第②处声明并定义了一个成员变量mVar,它的类型是整型(int),并将其初始值设为100。
代码第③处声明了一个整型局部变量m,但没有给它赋初始值。
代码第④处使用了Java 10引入的var关键字,用于进行局部变量的类型推断。在这里,var推断出y的类型为双精度浮点型(double),并将其初始值设为1.90。
代码第⑤处使用System.out.printf方法进行格式化输出。它打印输出变量m的值,并使用%d作为格式化转换符,表示整数类型。
代码第⑥处也使用了System.out.printf方法进行格式化输出。它打印输出变量d和y的值,并使用%.3f作为格式化转换符,表示浮点数类型,并限定小数点后保留三位小数,其中%d%n、%.3f和%.3f%n都是格式化转换符。Java中常用的格式化转换符如表2-2所示。
表2-2 Java中常用的格式化转换符

在本例中声明当前Java文件所属的包为demo2_3_1,注意这个包的命名约定,demo2_3_1表示第2.3.1节的示例代码。