【Java精品源码栏目提醒】:以下是网学会员为您推荐的Java精品源码-Java面向对象程序设计( 基本类型、数组和枚举类型) - 其它资料,希望本篇文章对您学习有所帮助。
《
Java面向对象程序设计》第2章 基本类型、数组和枚举类型 导读主要内容 标识符和关键字 基本数据类型 从命令行输入、输出数据 数组 枚举类型难点 数组§2.1 标识符和关键字 1. 标识符 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
简单地说,标识符就是一个名字。
2.关键字 关键字就是
Java语言中已经被赋予特定意义的一些单词。
不可以把关键字做为标识符来用。
§2.2 基本数据类型 基本数据类型也称作简单数据类型。
Java语言有8种基本数据类型,分别是: boolean、byte、short、int、long、float、double、char。
这8种基本数据类型习惯上可分为以下四大类型: 逻辑类型:boolean 整数类型:byte、short、int、long 字符类型:char 浮点类型:float、double§2.2.1 逻辑类型常量:true,false。
变量:使用关键字boolean来声明逻辑变量, 声明时也可以赋给初值,例如: boolean xoktrue关闭false §2.2.2 整数类型1.int 型常量:123,6000(十进制),077(八进制),0x3ABC(十六进制)。
变量:使用关键字int来声明int型变量,声明时也可以赋给初值, 例如: int x 12平均9898jiafei 对于int型变量,内存分配给4个字节(byte),占32位。
2.byte 型常量:
Java中不存在byte型常量的表示法,但可以把一定范围内的int型常量赋值给byte型变量。
变量:使用关键字byte来声明byte 型变量 例如: byte x -12tom28漂亮98 对于byte型内存分配给1个字节,占8位 。
3 .short 型常量:和byte型类似,
Java中也不存在short型常量的表示法,但可以把一定范围内的int型常量赋值给short型变量。
变量:使用关键字short来声明short型变量 例如: short x12y1234 对于short型变量,内存分配给2个字节,占16位.4. long 型常 量 : long 型 常 量 用 后 缀 L 来 表 示 , 例 如 108L 十 进 制 、 07123L 八 进 制 、0x3ABCL十六进制 。
变量:使用关键字long来声明long型变量, 例如: long width12Lheight2005Llength 对于long型变量,内存分配给8个字节,占64位。
§2.2.3 字符类型1. 常量:常量:‘A’,‘b’,‘’,‘’,‘9’,‘好’,‘t’,‘き’,‘モ’等, 即用单引号扩起的Unicode表中的一个字符。
2. 变量: 使用关键字char来声明char型变量, 例如:char ch‘A’home‘家’handsome‘酷’ 对于char型变量,内存分配给2个字节,占16位3. 转意字符常量:有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量 例如:n(换行),b(退格),t(水平制表), ‘(单引号),“(双引号),(反斜线)等。
4. 要观察一个字符在Unicode表中的顺序位置,可以使用int型显示转换,如inta或int pa。
5. 如果要得到一个065536之间的数所代表的Unicode表中相应位置上的字符 必须使用char型显示转换。
例2-1 §2.2.4 浮点类型1. float型 常 量 : 453.5439f , 21379.987F , 231.0f ( 小 数 表 示 法 ) , 2e40f(2乘10的40次方,指数表示法)。
需要特别注意的是: 常量后面必须要有后缀“f”或“F”。
变量:使用关键字float来声明float型变量, 例如:float x22.76ftom1234.987fweight1e-12F 精度:float变量在存储float型数据时保留8位有效数字,实际精度 取决于具体数值。
对于float型变量,内存分配给4个字节,占32位。
2. double 型 常量:2389.539d,2318908.987,0.05(小数表示法),1e- 90(1乘10的-90次方,指数表示法)。
对于double常量,后面 可以有后缀“d”或“D”,但允许省略该后缀。
变量:使用关键字double来声明double型变量, 例如:double height23.345width34.56Dlength1e12 对于double型变量,内存分配给8个字节,占64位 。
精度:double变量在存储double型数据时保留16位有效数字,实 际精度取决于具体数值。
§2.2.5 基本数据类型的转换
Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:byte short char int long float double★当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转 换。
例如: float x100★当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。
显示转换的格式:(类型名)要转换的值 例如 int xint34.89★当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量 的取值范围,否则必须进行类型转换运算;例如,常量128的属于int型常 量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类 型转换运算(将导致精度的损失),如下所示: byte abyte128 例2-2§2.3从命令行输入、输出数据 §2.3.1 输入基本型数据 ◆可以使用Scanner类创建一个对象: Scanner readernew ScannerSystem.in ◆reader对象调用下列方法,读取用户在命令行 (例如,MS- DOS窗口)输入的各种基本类型数据: nextBoolean、 nextByte、 nextShort、 nextInt nextLong、nextFloat、nextDouble。
上述方法执行时都会堵塞,程序等待用户在命令行输入数 据回车确认。
例2-3 §2.3.2 输出基本型数据◆ 用System.out.println或System.out.print可输出串值、表达式的值,二者的区别是前者输出数据后换行,后者不换行。
◆ 允许使用并置符号:“”将变量、表达式或一个常数值与一个字符串并置一起输出,如: System.out.printlnm个数的和为sum System.out.println“:”123“大于”122◆JDK1.5新增了和C语言中printf函数类似的数据输出方法,该方法使用格式如下: System.out.printf格式控制部分,表达式1,表达式2,…表达式n 格式控制部分由格式控制符号:d、c、f、s和普通的字符组成,普通字符原样输出。
格式符号用来输出表达式的值。
d:输出int类型数据值 c:输出char型数据。
f:输出浮点型数据,小数部分最多保留6位 s:输出字符串数据。
输出数据时也可以控制数据在命令行的位置,例如: md:输出的int型数据占m列 m.nf:输出的浮点型数据占m列,小数点保留n位。
§2.4 数组 数组是相同类型的变量按顺序组成的一种复合数据类型,称这些相同类型的变量为数组的元素或单元。
数组通过数组名加索引来使用数组的元素。
索引从0开始。
§2.4.1 声明数组◆ 声明一维数组有下列两种格式: 数组的元素类型 数组名字 或 数组的元素类型 数组名字 例如:float boy 或 float boy◆ 声明2维数组有下列两种格式: 数组的元素类型 数组名字 或 数组的元素类型 数组名字 例如:char cat 或 char cat 数组boy的元素可以存放float型数据、数组cat的元素可以存放char型数据。
◆数组的元素的类型可以是
Java的任何一种类型。
假如已经声明了一种People类型数据,那么可以如下声明一个数组: People china 数组china的元素可以存放People类型的数据。
§2.4.2 创建数组◆为数组分配内存空间的格式如下: 数组名字 new 数组元素的类型数组元素的个数 例如: boy new float4 为数组分配内存空间后,数组boy获得4个用来存放float类型数据的内存空间,即4个float型元素。
◆数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组就可以通过索引操作这些内存单元 。
◆声明数组和创建数组可以一起完 0x785BA boy0成,例如:float boynew float4 boy1◆二维数组和一维数组一样,在声明 boy boy2之后必须用new运算符分配内存空间,例如:int mytwo boy3 mytwonew int 34或 int mytwonew int34 图2.4 数组的内存模型 §2.4.3 数组元素的使用◆一维数组通过索引符访问自己的元素,如boy0,boy1等。
注意:索引从0开始,数组若有7个元素,那么索引到6为止,如果程序使用了如下语句:boy7384.98f程序运行时将发生.ArrayIndexOutOfBoundsException异常,因此在使用数组时必须谨慎,防止索引越界。
◆二维数组也通过索引符访问自己的元素,如a01,a12等;需要注意的是索引从0开始,比如声明创建了一个二维数组a:int a new int23;那么第一个索引的变化范围从0到1,第二个索引变化范围从0到2。
§2.4.4 length的使用◆一数组的元素的个数称作数组的长度。
对于一维数组“数组名字.length”的值就是数组中元素的个数。
◆对于二维数组“数组名字.length”的值是它含有的一维数组的个数。
对于 float a new float12 a.length的值12对于 int b new int36 b.length的值是3 §2.4.5 数组的初始化◆ 创建数组后,系统会给每个数组元素一个默认的值,如,float型是0.0。
◆ 在声明数组时同时也可以给数组的元素一个初始值,如:float boy 21.3f23.89f2.0f23f778.98f◆也可以直接用若干个一维数组初始化一个二维数组。
§2.4.6 数组的引用数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。
例如,对于int a 123b 45如果使用了下列赋值语句(a和b的类型必须相同):ab 那么a中存放的引用和b的相同。
例2-4 §2.4.7 表示格式Arrays类调用 public static String toStringint a方法,可以得到参数指定的一维数组a的如下格式的字符串表示: a0a1 …aa.length-1 §2.4.8 复制数组1.arraycopy方法 System类调用方法 public static void arraycopysourceArrayint index1copyArrayint index2int length可以将数组sourceArray从索引index1开始后的length个元素中的数据复制到数组copyArray中,copyArray数组从第index2元素开始存放这些数据。
例2-5 2.copyOf和copyOfRange方法 ◆ Arrays类调用copyOf方法复制整个数组中元素的值到另一个数组中。
public static double copyOfdouble originalint newLength ◆ Arrays类调用copyOfRange方法复制数组中部分元素的值复制到另一个数组中 public static double copyOfRangedouble originalint fromint to 例2-6