变量#
情境导入#
假设我们有一个公司。公司创立时有10个人,随后加入了5个人,后来又有1个人辞职。为了记录公司的人数,我们在一张纸上写下来。
上述场景中,“纸”存储着公司的人数。我们将“纸”称为变量,公司的人数就是变量的值。变量(Variable)是存储值的位置,且具有固定的类型。
创建变量#
为了获得“纸”,我们需要使用声明(Define)语句
其中,\(T\)为变量的类型,\(n\)为变量名,\(v_0\)为变量的初始值。变量的类型在数据类型一节中已经介绍过。
声明变量时,变量名不能与已有的重复。
注意
请记住你随时能用 JShell 测试各种语句。在本例中,输入以下代码:
int count = 10;
标识符#
变量的名称是一个标识符。标识符(Identifier)是 Java 中一些特定的对象的名称。
标识符满足以下规则:
- 第一个字符为字母、
_
或$
- 其余字符为字母、数字、
_
或$
- 不允许和保留关键字相同
- 不允许为
true
、false
或null
- 不允许全为下划线
标识符区分大小写,支持汉字。
Java 中有两种关键字:保留关键字和上下文关键字。保留关键字由 Java 保留且不可作为标识符。上下文关键字只在需要时才表现出其特性。
我们接下来将用不同颜色区分关键字。
修改变量#
为了修改“纸”上的内容,我们需要使用赋值语句
其中\(v_1\)是变量的新值。
注意
在 Java 中,一个等号表示赋值,两个等号表示比较!
复合操作符#
当\(v_1\)形如\(n + x\)时,我们可以把运算符和赋值号连接起来,形成复合赋值操作符。
自增、自减#
在\((1)(2)\)式中,若\(x=1\),则还可以用++
、--
操作符。
操作符的位置决定语句的运行顺序:++
、--
在后面时先获取变量值再赋值;在前面时顺序相反。
int a = 2;
int b = a++; // b = 2
int c = a; // c = 3
int d = ++a; // d = 4
int e = a; // e = 4
final
变量#
声明变量时在类型前添加final
可声明final
变量。final
变量必须且只能赋值一次。未初始化的final
变量不可使用。
final T n = initialValue;
JShell 中的临时变量#
你是否注意到每次输入表达式后,返回的结果左边有类似于$n ==>
这样的提示?这是因为 JShell 将表达式的值存到了临时变量中。我们可以按一般的变量访问这些临时变量。
jshell> 1 + 1
$1 ==> 2
jshell> "result = " + $1
$2 ==> "result = 2"
练习#
用本节所学内容表示出本节开头所提到的场景。
参考答案
int personCount = 10;
personCount += 5;
personCount--;