




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息工程学院本科课程信息工程学院本科课程 第2章 基本类型、数组、枚举类型 主讲:赵建邦 办公室:信息学院202 E-mail: 信息工程学院本科课程信息工程学院本科课程 2 本章主要内容 n2.1 标示符和关键字 n2.2 基本数据类型 n2.3 从命令行输入输出数据 n2.4 数组 n2.5 枚举类型 n难点:数组 信息工程学院本科课程信息工程学院本科课程 3 2.1 标识符和关键字 n标识符 n定义:用来识别类名、变量名、方法名、 类型名、文件名、包名的有效字符序列 n规则: n由字母、$ 、_和数字组成,长度不限 n第一个字符不能是数字 n不能是关键字以及“true、false和nul
2、l” n区分大小写 n关键字 nJava语言预留的特定意义单词,不能作为 标识符使用 世界语言 “字母”表 信息工程学院本科课程信息工程学院本科课程 4 2.1.1标识符命名约定 n使用能表达明确意义的英文单词,并 采用规范的单词缩写形式与单词分隔形式 n表示常量时标识符全部用大写字母和下划 线表示,如PI,SALES_MAX n表示类名或接口名时,标识符用大写字母 开头,如CreditCard n表示变量名和方法名,以小写字母开头, 单词之间不要有分隔符,第二及后面单词第 一个字符用大写字母,如authorName n一般情况下,不建议使用数字作为标识符 信息工程学院本科课程信息工程学院本科
3、课程 2.1.2 关键字 5 类/接口abstractclassImplementsimportInterface packagestaticthrowvoid 数据类型booleanbytechardoublefloat longintshortenumconst 流程控制breakcontinuecasedodefault elsefinalforgotoif returnswitchwhile 访问范围privatepretectedpublicsynchronized 对象实例newinstanceofthissuper 异常处理catchtryfinallythrowthrows 修
4、饰断言nativetransientvolatilestrictfpassert 信息工程学院本科课程信息工程学院本科课程 6 2.2 基本数据类型 信息工程学院本科课程信息工程学院本科课程 7 2.2.1 逻辑类型 n常量:常量:truetrue、falsefalse n变量声明:使用关键字变量声明:使用关键字booleanboolean n语法:语法: nboolean x, ok = true,boolean x, ok = true,关闭关闭=false;=false; 注意:和注意:和C C语言不同,语言不同,JavaJava的的booleanboolean和整型和整型 数据不能相互
5、强制转换数据不能相互强制转换 信息工程学院本科课程信息工程学院本科课程 8 2.2.2 整数类型 nint型 n常量:123,077(8进制),0 xAbC(16进制) n变量:int x=12,y; n长度:32bit,7:0 x00 00 00 07,-8:0 xFF FF FF F8 n范围: nbyte型 nbyte x=12,tom=28; nbyte只有一个字节 n范围: n如果超出范围赋值:byte y=128;则系统报错 77 221 3131 221 信息工程学院本科课程信息工程学院本科课程 9 2.2.2 整数类型 nshort型 nshort x=12,tom=28; n
6、short型有两个字节 n范围: n可以将int强制转换成short ,注意数据溢出问题 nlong型 nlong型常量用后缀名L表示:108L,07123L, 0 x3ABCL nlong width=12L,height=2005L,length; n对于long型变量,内存分配给8个字节,占64位。 n范围: 1515 221 6363 221 信息工程学院本科课程信息工程学院本科课程 2.2.3 字符类型 n常量:用单引号扩起的Unicode中的一个字符: A、 ?、!、9、t、等等; n变量:char home=家,噢=; n对于char型变量,内存分配两个字节,最高位不是符 号位,
7、因此其取值范围: 0 0655365535 5 n观察一个字符在Unicode中的位置,用int显示转换;得 到数字所代表的Unicode表中对应字符,用char显示转 换,如教材图2.1 n转意字符常量转意字符常量: : n(换行),b(退格),t(水平制表), (单引号),(双引号),(反斜线)等 10 信息工程学院本科课程信息工程学院本科课程 2.2.4 浮点类型 nfloat:单精度浮点型 n常量表示:453.5439f、21379.987F、 231.0f(小数表示法)、2e40f(指数表示法) n常量后面必须要有后缀常量后面必须要有后缀” f f”或或” F F”。 n变量:存储变
8、量:存储8 8位有效数字,内存分配位有效数字,内存分配4 4个字节个字节 n1 1(符号)(符号)+8+8(指数)(指数)+23+23(小数)(小数) n最小值:最小值:Float.MIN_VALUE=1.4E-45Float.MIN_VALUE=1.4E-45 n最大值:最大值:Float.MAX_VALUE=3.4028235E38Float.MAX_VALUE=3.4028235E38 11 信息工程学院本科课程信息工程学院本科课程 2.2.4 浮点类型 ndouble:双精度浮点型 n常量:常量:2389.5392389.539d d,2318908.9872318908.987,0.
9、050.05(小数小数 表示法),表示法),1 1e-90e-90(1 1乘乘1010的的-90-90次方,指数表示次方,指数表示 法)。实型常量按照法)。实型常量按照doubledouble型处理,后面可以型处理,后面可以 有后缀有后缀“d d”或或“D D”,但允许省略该后缀。但允许省略该后缀。 n变量:存储变量:存储1616位有效数字位有效数字, ,内存分配8个字节, 64bit n最小值:最小值:Double.MIN_VALUE=4.9E-324Double.MIN_VALUE=4.9E-324 n最大值:最大值:Double.MAX_VALUE=1.7976931348E308Dou
10、ble.MAX_VALUE=1.7976931348E308 12 信息工程学院本科课程信息工程学院本科课程 2.2.5 基本数据类型的转换 n低精度-高精度 n系统自动完成数据类型的转换 n高精度-低精度 n必须使用类型转换运算,如: int x=(int)34.89; int z=(int)1999L; n整数转换超出低精度取值范围 n取模运算: byte a=(byte)128; /a=-128 byte b=(byte)(-129); /b=127 ndouble - float,必须进行强制转换 float f=(float)12.4;/float f=12.4f; 13 byte1
11、 short2 int4 long8 char2 float4 double 8 信息工程学院本科课程信息工程学院本科课程 2.3 从命令行输入输出数据 n输入基本类型数据 nimport java.util.Scanner; /导入所所要的类 nScanner reader=new Scanner(System.in); /生成一个Scanner对象,用来输入数据 ndouble x = reader.nextDouble(); /* reader对象可以调用nextBoolean()、 *nextByte()、nextShort()、nextInt()、 *nextLong()、nextF
12、loat()、nextDouble()等 *方法。 */ 14 信息工程学院本科课程信息工程学院本科课程 2.3 从命令行输入输出数据 n输出基本类型数据 n用System.out.println()或System.out.print()可输出 串值、表达式的值,二者的区别是前者输出数据后 换行,后者不换行。 n允许使用并置符号:“+”将变量、表达式或一个 常数值与一个字符串并置一起输出,如: nSystem.out.println(m+个数的和为+sum); nSystem.out.println(“:”+123+“大于”+122); nprintf()方法可以控制输出格式 nSystem.
13、out.printf(“格式控制部分”,表达式,表达 式); 15 信息工程学院本科课程信息工程学院本科课程 2.4 数组 n数组的定义 n数组是相同类型的变量按顺序组成的一种复 合数据类型,称这些相同类型的变量为数组 的元素或单元。数组通过数组名加索引来使 用数组的元素。索引从0开始。 n数组的声明 n分配内存 n数组的初始化 16 信息工程学院本科课程信息工程学院本科课程 2.4.1 数组的声明 n声明一维数组 n数组的元素类型 数组名字 ; 或 n数组的元素类型 数组名字; n例如:float boy; 或 float boy; n声明二维数组 n数组的元素类型 数组名字; 或 n数组的
14、元素类型 数组名字; n例如:char cat; 或 char cat; n与C+不同,Java不允许在声明数组时 指定元素个数 17 信息工程学院本科课程信息工程学院本科课程 2.4.2 数组的创建 n数组的创建过程即为数组分配内存空间 n数组名字 = new 数组元素的类型数组元素 的个数; n例如:boy = new float4; nboy是引用型变量,该变量保存已分配数组 的首地址,通过数组名加索引使用数组元素 n数组的声明和创建可以一起完成 nfloat boy= new float4; nchar cat=new char34; 18 信息工程学院本科课程信息工程学院本科课程 2
15、.4.2 数组的创建 n二维数组的每个一维分量不必有相同的 长度,可以分别制定其一维分量的长度, 一维分量长度不需要统一。例如: nint a = new int4; na0=new int6; a1=new int5; n n和C语言不同,Java允许使用int型变量的 值制定元素的个数 nint x=5; int b=new intx; 19 信息工程学院本科课程信息工程学院本科课程 2.4.3 数组元素的使用 n访问数组元素,注意防止索引越界 n例如:int a= new int23; n第一个索引变化范围为:0,1; n第二个索引变化范围为:0,1,2; nlength的使用 nflo
16、at a=new float13; /a.length=12 nint b=new int36; /b.length=3; /b1.length=6; 20 信息工程学院本科课程信息工程学院本科课程 2.4.4 数组的初始化 n数组创建以后,系统会对每个数组默认 初始化 n声明时初始化: nfloat boy = 21.3f,23.89f, 2.0f,23f,778.98f; nint a=1,1,1,1,2,1, n 1,3,3,1,1,4,6,4,1; 21 信息工程学院本科课程信息工程学院本科课程 2.4.5 数组的引用 n在函数中定义的一些基本类型的变量数据和对象的引 用变量都在函数的
17、栈内存中分配。 n堆内存用来存放由new创建的对象和数组。 在堆中分 配的内存,由Java虚拟机的自动垃圾回收器来管理。 nint a = 1,2,3,b = 4,5; int a = 1,2,3,b = 4,5; a=b; 22 信息工程学院本科课程信息工程学院本科课程 引用变量 n引用变量是普通的变量,定义时在栈中分配, 引用变量在程序运行到其作用域之外后被释放。 而数组和对象本身在堆中分配,即使程序 运行 到使用 new 产生数组或者对象的语句所在的 代码块之外,数组和对象本身占据的内存不会 被释放,数组和对象在没有引用变量指向它的 时候,才变为垃圾,不能在被使用,但仍 然占 据内存空间
18、不放,在随后的一个不确定的时间 被垃圾回收器收走(释放掉)。这也是 Java 比较占内存的原因。 23 信息工程学院本科课程信息工程学院本科课程 2.4.6 元素的输出 n对于char型数组a,System.out.println() 方法不会输出a的引用,需要用 System.out.println(“”+a)来输出其引用 n通过Arrays类的toString(int a)方法可以 得到数组的 a0,a1 a0,a1 aa.length-1aa.length-1 格式字符串 n对于数组a=1,2,3 nArrays.toString(a)= “1, 2, 3” 24 信息工程学院本科课程信
19、息工程学院本科课程 2.4.7 复制数组 narraycopy()方法 npublic static void arraycopy(public static void arraycopy(sourceArraysourceArray, ,int int index1index1,copyArray,int index2,copyArray,int index2,int lengthint length) ) n可以将数可以将数组组sourceArraysourceArray从索引从索引index1index1开始后的开始后的lengthlength个元素个元素 中的数据复制到数组中的数据复制
20、到数组copyArraycopyArray中,中,copyArraycopyArray数组从第数组从第 index2index2元素开始存放这些数据。元素开始存放这些数据。 n如果如果copyArraycopyArray不能存放复制的所有数据,程序将报错不能存放复制的所有数据,程序将报错 25 信息工程学院本科课程信息工程学院本科课程 2.4.7 复制数组 ncopyOf()方法 nArraysArrays类调用类调用copyOf方法方法复制整个数组复制整个数组中元素的值到另中元素的值到另 一个数组中一个数组中。起始索引:。起始索引:0 0, ,拷贝的元素个数拷贝的元素个数: :newLeng
21、thnewLength npublic static double copyOf(double original, int public static double copyOf(double original, int newLength);newLength); ncopyOfRange()方法 nArraysArrays类调用类调用copyOfRange()方法方法复制复制数组中部分元素数组中部分元素 的值复制到另一个数组中,起始索引:的值复制到另一个数组中,起始索引:fromfrom,拷贝的元,拷贝的元 素个数:素个数:to-fromto-from npublic static double copy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年中国佛教协会和中国佛学院招聘笔试真题
- 包仓库合同范本
- 保温棉合同范本
- 2024年清远市英德市市区学校选调教师考试真题
- 乡下老宅转让合同范本
- 包山正规合同范本
- 《三、应用设计模板》教学设计 -2024-2025学年初中信息技术人教版七年级上册
- 三层楼房施工合同范本
- Unit 8 Lesson 46 教学设计 - 2024-2025学年冀教版英语八年级下册
- 第2单元 单元备课说明2024-2025学年新教材七年级语文上册同步教学设计(统编版2024)河北专版
- 祖国版图知识主题班会
- 第二十一章会阴部美容手术讲解
- 2024年金华金开招商招才服务集团有限公司招聘笔试真题
- 2025年度iPhone手机租赁与虚拟现实体验合同3篇
- 2025年度消防工程安全防护措施设计固定总价合同范本3篇
- 苏北四市(徐州、宿迁、淮安、连云港)2025届高三第一次调研考试(一模)语文试卷(含答案)
- 食品企业危机管理应对方案
- 《无创呼吸机护理》课件
- 2024年济南广播电视台招聘工作人员笔试真题
- 2025年临床医师定期考核必考复习题库及答案(1060题)
- 市场消防安全课件
评论
0/150
提交评论