Java面向对象程序设计教程
上QQ阅读APP看书,第一时间看更新

2.2.3 各种类型的变量

在定义变量时一旦确定了数据类型,后续无法更改,因此在定义变量前应该根据变量保存的内容仔细选择数据类型。需要注意的是,字面值常量(诸如10000、7.6这样的常量)也是具有数据类型的,如10000为int型,7.6为double型。

例如,正确的数据类型使用和赋值:

字符的特殊说明:char类型可以保存一个字符(包括字母和汉字),有些特殊字符难以表示(如换行符、制表符),可以采用下列两种方式处理:

(1)使用字符反斜行“\”进行转义。

(2)使用'\u0000'的方式直接输入字符十六进制的Unicode编码。

例如,使用转义字符为char类型变量赋值:

八进制与十六进制表示使用0作为前缀表示八进制数字,如017为十进制的15。使用0x作为前缀表示十六进制数字,如0x1F为是十进制的31。

类型后缀:前面说过Java会将整型的字面值常量认作int类型,浮点型的字面值常量认作double类型,所以下面两行代码会出现错误:

读者可能会觉得奇怪,数字8888888888虽大,但仍在long类型的保存范围内,为什么代码会出错呢?原因就在于Java将整数认作int类型,但8888888888超出了int类型的保存范围,所以会报错。这时通过添加类型后缀“L”将其指定为long类型可以解决。例如:

而1.83被认作double类型,虽然超出范围,但是Java不能将double类型的数值直接赋值给float类型的变量(具体原因见后续的类型转换),这时通过添加类型后缀“F”将其指定为float类型可以解决,例如:

String类型并不属于上面提到的8个基本类型,不过String类型是一个很常用的类型,它用来存储字符串变量。确切地说,String是一个类,它封装了一些关于字符串的操作。

上面两行代码声明了一个字符串变量,并给变量赋值为“Hello World!”。注意,在声明字符串变量时,要注意“String”的大小写,不要把“String”写成“string”。此外,在给字符串赋值时要使用双引号("")括住字符串。

给字符串变量赋值还有一些其他的方法: