什么是变量(Variable)?
变量是我们在程序里定义的由计算机存储到内存(RAM-Random Access Memory)空间里的值,变量有一个名字叫做变量名(variable name)
我们要做的事情,就是告诉计算机,我们想要在内存里存入什么类型的内容(数据),然后给这个内容起一个名字
能存入内存里的数据分为很多种类型,这些类型叫做数据类型(Data Types),数据类型在Java中是以关键字的形式表示的
我们从整型变量(Integer,即存入的内容是整数)的定义开始。在Java中定义整数,需要使用到关键字:int
紧接着上一节的代码,我们在打印Hello, Ben的基础上,在下一句加上如下代码:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = 5;
}
}
这里,int表示我告诉计算机,我想要存储的数据类型为整型(整数类型),myFirstNumber是我给这个变量起的名字,等于号右边的5是我要存储的数据,等于号表示赋值操作,也就是把等号右边的变量的值(数据)存储到等号左边的变量名所属的内存空间里面。依然的,不能漏掉末尾的分号,分号的意义在于告诉Java,这个句子结束了。如果没有分号,那么会产生语法错误(Syntax error)
定义变量的这个语句,我们叫做声明语句(Declaration Statement),或者叫做声明变量。为什么是声明呢?因为定义变量的时候,赋值操作是可选的。也就是说,定义变量时,是可以不赋值的,例如语句:int myFirstNumber;
,这表示告诉Java我要使用一个int类型的变量,变量名为myFirstNumber,但这个变量里面暂时不存储任何数据
练习1
观察如下代码:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = 5;
}
}
在声明myFirstNumber变量之后新增代码,以使程序能够打印出变量myFirstNumber
答案:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = 5;
System.out.println(myFirstNumber);
}
}
解析:
这里要注意的是,第一句的打印语句System.out.println("Hello Ben!")
里面所写的打印的内容Hello Ben!是被两个双引号所囊括起来的,这种被双引号囊括起来的数据类型,叫做字符串(String)
如果要打印myFirstNumber变量,像这样写:System.out.println("myFirstNumber")
,打印出来的结果就是myFirstNumber,而不是数字5,这明显不是我们所想要的结果。因为双引号囊括起来的数据类型为字符串,计算机会把"myFirstNumber"当成普通的字符串来处理,而不会读取它所存储的值。正确的写法是:System.out.println(myFirstNumber)
,可以看到,这里没有使用双引号囊括myFirstNumber,此时计算机会读取该变量的值,并打印出数字5
表达式
我们当然也可以在赋值的时候,对等号右边的数据进行常规的四则运算操作,例如:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = 5 + 10;
System.out.println(myFirstNumber);
}
}
可以猜得到,这样打印出来的结果,除了Hello Ben!以外,下一行是数字15
等号右边的这种求值的式子,我们叫做表达式(expression)
我们当然可以修改右边的表达式,使其变得更加复杂:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = (5 + 10) * (2 + 2 * 4);
System.out.println(myFirstNumber);
}
}
可以猜得到,打印出来的值是150
计算机中表达式里面的四则运算符号的优先级和我们在小学里面学到的数学的运算优先级相同,先乘除,后加减,有括号的先算括号里面
在Java中,包括四则运算和括号在内的这些运算符号,我们叫做操作符(Operator),加减乘除的操作符如下:
运算 | 操作符 |
---|---|
加法 | + |
减法 | - |
乘法 | * |
除法 | / |
练习2
在上述程序中添加声明语句,要求如下:
- 添加一个int类型的变量mySecondNumber,并赋值12;
- 添加一个int类型的变量myThirdNumber,并赋值6;
- 将上述两句声明语句放在myFirstNumber声明的后面
答案:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = (5 + 10) * (2 + 2 * 4);
int mySecondNumber = 12;
int myThirdNumber = 6;
System.out.println(myFirstNumber);
}
}
练习3
在上述的程序中,新增了两个变量声明,现要求再声明一个int类型的变量myTotal,并计算myFirstNumber、mySecondNumber和myThirdNumber的和,赋值给myTotal,然后打印出来
答案:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = (5 + 10) * (2 + 2 * 4);
int mySecondNumber = 12;
int myThirdNumber = 6;
int myTotal = myFirstNumber + mySecondNumber + myThirdNumber;
System.out.println(myTotal);
}
}
最后的练习
在上述程序中,新增一个int类型的变量myLastOne,它的值比myTotal的值小10,并打印
答案:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Ben!");
int myFirstNumber = (5 + 10) * (2 + 2 * 4);
int mySecondNumber = 12;
int myThirdNumber = 6;
int myTotal = myFirstNumber + mySecondNumber + myThirdNumber;
System.out.println(myTotal);
int myLastOne = myTotal - 10;
System.out.println(myLastOne);
}
}
Intellij IDEA小技巧
System.out.println()
将是在学习Java的过程中经常使用的一个方法,在IntelliJ中有更加方便的方式来输入这串方法,我们只需要输入sout
并回车即可