2.3.1 变量
变量是构成表达式的重要部分,变量所代表的内容是可以被修改的。变量包括变量名和变量值,变量名要遵守标识符命名规范。
在Java 10之前声明变量的语法格式为:
![](https://epubservercos.yuewen.com/92BB40/29686251103543406/epubprivate/OEBPS/Images/38_02.jpg?sign=1739036947-Z7s2q6jU8C3EZV1IfWbIItBM0oniRodu-0-5bc44a28c144cc7a93951cfa049427f9)
其中中括号[]中的内容可以省略,也就是说,在声明变量时可以不提供初始值,如果没有提供初始值,则使用该种数据类型的默认值来初始化变量。
在Java 10之后,引入了局部变量类型推断的功能,允许使用关键字var来进行变量的声明。这种语法格式可以根据初始值的类型自动推断变量的类型,使代码更加简洁和可读。
在Java 10之后声明变量的语法格式为:
![](https://epubservercos.yuewen.com/92BB40/29686251103543406/epubprivate/OEBPS/Images/38_03.jpg?sign=1739036947-ZYcMg9KXrR4t3QnhEK5aI5jgHwAdvpPp-0-6ae797bb311906e020852b68f4dcac24)
使用var关键字声明变量,而且声明的同时要初始化。注意var只能声明局部变量,不能声明成员变量。
示例代码如下:
![](https://epubservercos.yuewen.com/92BB40/29686251103543406/epubprivate/OEBPS/Images/38_04.jpg?sign=1739036947-yUHQGCvW0z1bCF8pvKZ3moDVts3u2CXm-0-9904f7f423cb9fb77a71a1d4ab85700c)
上述代码运行结果如下:
![](https://epubservercos.yuewen.com/92BB40/29686251103543406/epubprivate/OEBPS/Images/38_05.jpg?sign=1739036947-8OBDK6yisdun3e4PzBJsuhkXZt3xePNB-0-5e2a2f86101fd841478322121253a672)
代码解释如下:
代码第①处是用于声明包的,指定了当前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中常用的格式化转换符
![](https://epubservercos.yuewen.com/92BB40/29686251103543406/epubprivate/OEBPS/Images/39_01.jpg?sign=1739036947-vkdvVXm1Mb8FSYc2zJfacynAYjWWTzwH-0-4eeb96783d11590e3ce5b230886eaf31)
在本例中声明当前Java文件所属的包为demo2_3_1,注意这个包的命名约定,demo2_3_1表示第2.3.1节的示例代码。