Download presentation
Presentation is loading. Please wait.
1
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
2
第2章 基本数据类型与数组 课件制作人: 张跃平 配合例子源代码一起使用
3
导读 主要内容 重点和难点 标识符与关键字 基本数据类型 类型转换运算 输入、输出数据 数组 重点:标示符、Java语言的数据类型、数组
难点:基本数据类型的精度和数组
4
§2.1 标识符与关键字 标识符 Java语言规定 关键字
§2.1 标识符与关键字 标识符 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字 。 Java语言规定 标识符由字母、下划线、美元符号和数字组成,长度不受限制。 标识符的第一个字符不能是数字字符。 标识符不能是关键字(关键字见下面的2.1.3节)。 标识符不能是true、false和null(尽管true、false和null不是关键字)。 关键字 关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用 。 例如: boolean、byte、short、int、float、double、char、if、else等。 关键字都是小写的。遇到大写肯定不是关键字。
5
§2.2 基本数据类型 有8种基本数据类型: 8种基本数据类型习惯上可分为以下四大类型:
§2.2 基本数据类型 有8种基本数据类型: boolean、byte、short、int、long、float、double、char。 8种基本数据类型习惯上可分为以下四大类型: 逻辑类型:boolean 整数类型:byte、short、int、long 字符类型:char 浮点类型:float、double
6
boolean x,ok=true,关闭=false;
§2.2.1 逻辑类型 变量 使用关键字boolean来声明逻辑变量,声明时也可以赋给初值。 常量 true、false 例如: boolean x,ok=true,关闭=false;
7
§2.2.2 整数类型 int 型 byte 型 变量:使用关键字int来声明int型变量,声明时也可以赋给初值.
§ 整数类型 int 型 变量:使用关键字int来声明int型变量,声明时也可以赋给初值. 例如: int x= 12,平均=9898,jiafei; 常量:int型常量共有三种表示方法: 十进制: 123,6000(十进制) 八进制: 077(八进制,是零开头); 十六进制: 0x3ABC(十六进制) 对于int型变量,内存分配给4个字节(byte),占32位. byte 型 变量:使用关键字byte来声明byte 型变量. 例如: byte x= -12, tom=28, 漂亮=98; 常量:一定范围内的int型常量赋值给byte型变量. 对于byte型内存分配给1个字节,占8位 .
8
short 型 long 型 变量:使用关键字short来声明short型变量。 例如: short x=12,y=1234;
常量:和byte型类似,Java中也不存在short型常量的表示法,但可以把一定范围内的int型常量赋值给short型变量。 对于short型变量,内存分配给2个字节,占16位. long 型 变量:使用关键字long来声明long型变量。 常量:long型常量用后缀L来表示,例如108L(十进制)、07123L(八进制)、 0x3ABCL(十六进制) 。 例如: long width=12L,height=2005L,length; 对于long型变量,内存分配给8个字节,占64位。
9
§2.2.3 字符类型 char类型 转意字符常量: Java语言使用Unicode标准字符集,最多可以识别65536个字符 .例子1
§ 字符类型 char类型 常量:‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用单引号扩起的Unicode表中的一个字符。 变量: 使用关键字char来声明char型变量,对于char型变量,内存分配给2个字节,占16位 例如:char ch=‘A’,home=‘家’,handsome=‘酷’; 转意字符常量: 有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量, 例如:\n(换行), \b(退格),\t(水平制表),\‘(单引号), \“(双引号),\\(反斜线)等。 Java语言使用Unicode标准字符集,最多可以识别65536个字符 .例子1
10
§2.2.4 浮点类型 float型 需要特别注意的是float常量后面必须要有后缀f或F。
§ 浮点类型 float型 常量:453.54F(小数表示法),2e40f(2乘10的40次方,指数表示法). 变量:使用关键字float来声明float型变量, 例如:float x=22.76f,tom= f,weight=1e-12F; 精度:float变量在存储时保留8位有效数字。 对于float型变量,内存分配给4个字节,占32位。 需要特别注意的是float常量后面必须要有后缀f或F。
11
§ 浮点类型 double 型 常量: d, (小数表示法),1e-90(1乘10的-90次方,指数表示法).对于double常量,后缀有“d”或“D”,但允许省略后缀. 变量:使用关键字double来声明double型变量, 例如:double height=23.345,width=34.56D,length=1e12; 对于double型变量,内存分配给8个字节,占64位 。 精度:double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。 特别注意 一个具有小数部分的数据的缺省类型是double而不是float。所以float常量后面必须要有后缀“f”或“F”。
12
§2.3 类型转换运算 Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列: 规则:
byte short char int long float double 规则: 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。 例如:float x=100; 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;例如:int x=(int)34.89; 当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算; 例如: byte b=128;(error) byte b=(byte)128(ok)
13
例题 下面的例子2使用了类型转换运算,运行效果如图2.2。 例子2
14
Scanner reader=new Scanner(System.in);
§2.4 输入、输出数据 _1 2.4.1 输入基本型数据 可以使用Scanner类创建一个对象: Scanner reader=new Scanner(System.in); 其中:reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据: nextBoolean()、 nextByte()、 nextShort()、 nextInt() 、 nextLong()、nextFloat()、nextDouble()。 上述方法执行时都会堵塞,程序等待用户在命令行 输入数据回车确认。
15
例题 例子3中,用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,在键盘输入数0结束整个的输入操作过程,程序将计算出这些数的和,运行效果如图2.3。 例子3
16
§2.4 输入、输出数据_2 2.4.2 输出基本型数据 java使用System类中的方法实现数据输出
§2.4 输入、输出数据_2 2.4.2 输出基本型数据 java使用System类中的方法实现数据输出 例如:System.out.println()或System.out.print()输出串值,表达式的值。二者的区别是前者输出数据后换行,后者不换行。如: System.out.println(m+"个数的和为"+sum); System.out.println(":"+123+"大于"+122); 如果需要输出的字符串的长度较长,可以将字符串分解成几部分,然后使用并置符号:“+”将它们首尾相接, 例如:System.out.println("你好,"+ "很高兴认识你" );
17
§2.4 输入、输出数据_2续 JDK1.5新增了和C语言中printf函数类似的输出数据的方法,格式如下:
§2.4 输入、输出数据_2续 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位。 例如:System.out.printf("%d,%f",12, 23.78);
18
§2.5 数组 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从0开始排序。
2.5.1 声明数组 声明一维数组有下列两种格式: 数组的元素类型 数组名[]; 数组的元素类型 [] 数组名; 例如: float boy[]; char [] cat; 声明二维数组有下列两种格式: 数组的元素类型 数组名[][]; 数组的元素类型 [][] 数组名; float a[][]; Char [][] b;
19
2.5.2 为数组分配元素空间 float boy []=new float[4]; 为数组分配元素的格式如下:
说明:数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组变量的名字加索引使用数组的元素(内存示意如图2.4所示).比如: boy[0] = 12; boy[1] = F; boy[2] = 100; boy[3] = 10.23f; 注意:数组的声明和分配空间可以在声明时同时完成: float boy []=new float[4];
20
2.5.3 数组元素的使用 数组元素的使用 boy[4] = 384.98f;
一维数组通过索引(下标运算)符访问自己的元素。如:boy[0],boy[1]等. 需要注意的是索引从0开始,因此,数组若有4个元素,那么索引到3为止,如果程序使用了如下语句: boy[4] = f; 程序可以编译通过,但运行时将发生ArrayIndexOutOfBoundsException 异常, 因此在使用数组时必须谨慎, 防止索引越界。 注意下标
21
2.5.4 length的使用 length字段的使用 例如: float boy []=new float[4];
boy.length的值为4. int [][] a = new int[3][8]; a.length的值是3. a[0].length的值是8 a[1].length的值是8 a[2].length的值是8
22
2.5.5 数组的初始化 float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f}; 数组初始化
创建数组后,系统会给数组的每个元素一个默认的值 例如,float型是0.0。 如果需要赋值,就要为每个元素赋值:例如: float boy []=new float[4]; boy[0] = 12; boy[1] = F; boy[2] = 100; boy[3] = 10.23f; 在声明数组的同时也可以给数组的元素一个初始值,如: float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};
23
2.5.6 数组的引用 数组的引用 下面的例子4使用了数组,请读者注意程序的输出结果,运行效果如图2.7。
数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。. 下面的例子4使用了数组,请读者注意程序的输出结果,运行效果如图2.7。 例子4
24
数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。
重要结论 数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。 对于 int a[] = {1,2,3},b[ ] = {4,5}; 数组变量a和b分别存放着引用de6ced和c17164,内存模型如图2.5所示 进行赋值a = b; 那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同,a、b的内存模型变成如图2.6所示。
25
§2.6 应用举例 折半法:对于从小到大排序的数组,我们只要判断数据是否和数组中间的值相等,如果不相等,当该数据小于数组中间元素的值,就在数组的前一半数据中继续折半找,否则就在数组的后一半数据中继续折半找,如此这般,就可以比较快地判断该数据是否在数组中。 例子5能判断用户输入的一个整数是否在已知的数组中。程序效果如图2.8 例子5
26
总结 Java语言有8种基本数据类型 (boolean byte short char int long float double)
1 标识符由字母、下划线、美元符号和数字组成, 并且第一个字符不能是数字字符(关键字不能做标识符). Java语言有8种基本数据类型 (boolean byte short char int long float double) 3 数组是相同类型的数据元素按顺序组成的一种 复合数据类型,数组属于引用型变量. 4 两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。
27
作业 习题2: 2,3,4
28
本章结束 Thank You !
Similar presentations