版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 江西师范大学计算机信息工程学院计算机科学系课程组 面向对象程序设计1.目录第1章 程序设计言语概述第2章 程序设计言语的根本成分第3章 程序设计方法概述第4章 面向对象言语根底第5章 类的管理及常用工具类第6章 异常处置和断言第7章 线程第8章 GUI编程根底和applet第9章 I/O流第10章 网络通讯第11章 泛型与集合框架2.5.1 包5.2 包装器类 和 自动装箱/拆箱5.3 枚举5.4 数组的高级运用5.5 字符串的高级运用补:随机数类第5章 类的管理及常用工具类全面完好了解并掌握类及成员的存取权限;掌握包装器类引入缘由和根本运用方式;了解和
2、掌握自动拆箱/自动装箱机制;了解紧凑型for循环和正那么表达式。本章重点3.包包的声明和导入访问权限5.1 包4.包是类/接口的管理机制包是存放类/集合的目录或紧缩包。包与类的关系,类似于目录/紧缩包与文件;Java类库大多以紧缩包方式存储,如*.jar实践上,lib目录下的ct.sym也是紧缩包包名格式例如:UserData.NanChang.BankJava是面向网络的言语,需求借助包来区分放置于不同主机上的类、类库或对象。如Java RMI (Remote Method Invocation)机制.5.1 包5.声明包声明包,就是告知编译器,要将该文件编译后产生的一切.class文件,均
3、放入指定的包中。其中假设包不存在,那么会自动创建。格式:package 包名1.包名2.包名3.;如: package aa.bb.cc;语法限定:一个Java源文件中只能声明一个包,且声明语句只能作为源文件的第一条指令。5.1 包6.导入包背景:运用包中的类,可用全名或相对名,如全名:java.util.Scanner相对名:Scanner,需求导入包导入包,就是设定类的搜索途径。格式:import 包名1.包名2.类名|接口名|*5.1 包import aa.EnumDemo; import java.util.*; import java.util.Scanner;7.本卷须知无法导入其
4、它包中的非public类;要正确设置classPath环境变量,让编译器能找到系统包。Java编译器会自动导入包java.lang。如System、String、Math等均在此包。导入包不包含被导入包的子包;如 import java.*; 不能导入 java.util.Scanner类对大型工程,导入时尽量指明详细类,而不要用.*的方式,后者会极大影响编译速度。5.1 包8.无名包问题无名包:假设源文件中未用package声明,那么编译后产生的.class文件自动放置于无名包。例如:A.class位于无名包;B.class位于包X影响:无名包中的类无法被导入。换言之,无名包中的类无法被其它
5、包中的类运用。5.1 包A.javapublic class AB.javapackage X;public class B好的编程习惯:为每个类都指定一个包;导入时,导入类而不是导入包。9.类的访问权限缺省:该类只能被同一包中的类访问public:该类可被包外的类访问当然,访问前需求导入,或者运用 包名+类名格式5.1.3 访问权限package p1public class Aclass BA.javapackage p2public class Cclass DC.javaA、B、C、D可以访问哪些类?10.类中成员的访问权限成员的访问权限:四种留意:纵向看,只需两种:能访问、不能访问5
6、.1.3 访问权限修饰符同一类同一包不同包的子类所有类publicprotected缺省private对同一类而言,成员相互间可恣意访问,无权限之分。对同处一包的类A、B,A不能访问B的private成员,其他均可访问。假设类A、B分处不同包,A只能访问B的public成员,其他均不能访问。11.试分析下面各类之间相互访问的能够5.1.3 访问权限package X;public class A public int x1; protected int x2; int x3; private int x4;class Bpackage Y;import X.A;public class Ccl
7、ass D extends A 12.包装器类的引入背景包装器类的构造函数包装器类的常用方法自动装箱和自动拆箱5.2 包装器类和自动装箱/拆箱13.背景:提供与根本类型相关的常用功能操作根本类型运用频繁,需用汇编/C等单独实现;why?根本绑定的操作方法太少,功能不强。包装器类:为根本型配备的对应类。Byte、Short、Integer、Long、Float、Double、Character、Boolean包装器类主要实现了两种功能:实现根本类型与援用类型之间的自动转换。实现根本类型与String类型之间的相互转换。5.2 包装器类和自动装箱/拆箱这6种均属Number类的子类14.包装器类的
8、运用构造函数:包装器类名(根本类型值) 或包装器类名(根本类型值的字符串)常用方法根本类型 xxxValue(); /转成特定数值型static xxx parseXxx(String s); /String转根本型xxxstatic W valueOf(String s); /String转包装器型W5.2 包装器类和自动装箱/拆箱Integer i1=new Integer(5);Integer i2=new Integer(5); Integer i3=new Integer(1.25); /运转时报错Double d=i1; /编译错Boolean b=new Boolean(ture
9、); /正确Boolean b=new Boolean(TRUE); /正确字符串转Double: Double d=Double.valueOf(1.2);字符串转double: double d=Double.parseDouble(1.2);double转字符串:String s=Double.toString(3.14);double 转 byte:byte b=(new Double(3.14).byteValue();15.自动装箱和拆箱自动装箱:根本型自动转换为对应包装器型自动装箱:包装器型自动转换为对应根本型如:Double a=1.2; double b= a ; 自动装箱、
10、拆箱能够隐含错误例如:Integer i = null; int j = i; /运转时错 等同于:Integer i=null; int j= Value();留意: jDK1.5才引入对Boolean的自动拆箱如: Boolean b=new Boolean(ture);if (b) -此句在JDK1.5之前环境中发生编译错5.2 包装器类和自动装箱/拆箱16.枚举JDK 1.5新增机制格式: enum 枚举类型名 枚举常量表 一切的枚举型都隐式地承继自Java.lang.Enum该类是一个泛型类,任何类都不能直接扩展该类。枚举常量按定义顺序分别对应索引值0、1、2、等,并自动具
11、备public、static、final等属性。编译器为枚举型附加两静态方法(类Enum中无此方法):5.3 枚举enum Week MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; Week w; w=Week.FRIDAY; w=SUNDAY; /编译错1、public static E values(),前往一个枚举型数组,包含 一切枚举常量,各常量位置按声明顺序存储2、public static E valueOf(String name) 前往枚举常量name;假设该常量未定义那么运转时抛出异常。例如详见:
12、ch_5_5.java17.紧凑型for循环构造拷贝数组Arrays工具类5.4 数组的高级运用18.for-each循环构造JDK1.5新增格式:for( Tyep e: exp) S ;其中exp是数据集对象必需是数组或实现了Iterable接口的对象。e是循环变量相当于exp中的元素。执行方式为:1.) 从exp中取出下一个元素赋值给e,执行语句S;2.) 假设exp一切元素均已迭代,那么循环终了;否那么,转1)。留意:e不能在for-each构造之外定义。5.4 数组的高级运用void f()int a=1,2,3,4,5;int i=0;for( i: a) System.out.p
13、rint( +i); /编译错for(int j: a) System.out.print( +j); /正确19.arraycopy:位于System类,用于数组复制void arraycopy(Object src, int p1, Object dest, int p2, int len)将srcp1.p1+len-1复制到destp2.p2+len-1中Arrays是数组的工具类,存于java.util包中Arrays提供了用于处置数组的常用静态方法,包括排序sort、binarySearch前提是数组必需求有序、比较数组元素能否相等equals、填充数组元素fill等。5.4 数组的
14、高级运用例如详见Ch_5_6.java、Ch_5_7.java20.StringBuffer和StringBuilder正那么表达式字符串的高级运用5.5 字符串的高级运用21.引入期望引入大容量、可更改的字符串存储对象。StringBuffer类该类对象可看作是一个用于存储字符串的数据块,可反复修正,反复运用。StringBuilder类JDK1.5版新增,功能与StringBuffer几乎一样,执行更高效,但在线程中运用不平安。5.5 字符串的高级运用例如详见Ch_5_8.java22.正那么表达式是一种可以描写某种词法规那么的字符串。 0Xx(0-9a-fA-F)+ 表示十六进制数,含义
15、为:以0作开头,后接X或x,再后面就是假设干个至少1个数字、字母a-f或A-F。a-zA-Z_+(w)* :表示C的标识符,标识含义见后。运用:如何识别下面字符串中的十六进制数: 08 + AF- 0 x98AF- Bc * 0XA93bf 5.5 字符串的高级运用23.java正那么表达式的常用描画符号java正那么表达式的常用描画符号元字符描述:表达特定含义量词描述:表达重复次数元字符含义元字符含义量词含义d数字D数字以外的字符X?表示X至多重复1次(即X要么不出现,要么出现1次).任何一个字符w 字字符(字母、数字、下划线)X*表示X重复多次(0次)X+表示X重复多次(1次)s空白字符要
16、查找的字符集W字字符以外的字符XnX重复n次-一段连续的范围不存在的字符Xn,X重复至少n次&并且()刻画一个整体Xn,mX重复至少n次,至多m次正那么表达式例如:aeiou 匹配 a、e、i、o、u中的任何一个字符abc 匹配 a、b、c之外的任何一个字符a-cA-c 匹配 a、b、c、A、B、C中的任一字符a-c0-2匹配 a、b、c、0、1、2之外的任一字符(abc)3 匹配 abcabcabca-dx-z 等价于 a-dx-za-z&bc 表示除b、c之外的一切小写英文字母24.正那么表达式构造正那么表达式类似构造SQL语句,类似编程不同言语在描画正那么表达式时略有不同。Pattern和Matcher(位于java.util.regex包)公用于正那么表达式处置,处置方法类似KMP算法:现对正那么式编译优化,然后再匹配。5.5 字符串的高级运用根本例如:Ch_5_9.java、Ch_5_10.java综合例如:C 标识符的识别 IdentifyID.java25.String类中支持正那么表达式的相关方法String split(String regex)/regex是分隔串String replaceFirst(String regex, String rp)String replaceAll(String regex, String rp)留意:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢结构房屋工程测量服务合同(二零二四年度)2篇
- 2024年度二手房交易合同中的交易流程及时间节点3篇
- 铁路运输货运合同完整版
- 土地托管合同范本模板
- 鸡蛋生产项目目标与预期效益
- 设备购买合同范本
- 辣椒购销合同版
- 农村房屋及土地使用权转让合同
- 社区商业分租合同模板
- 2024二手车交易合同范例5篇
- 血常规报告单
- JJG 443-2023燃油加油机(试行)
- 儿童绘本故事:牙齿大街的新鲜事
- 房产赠与协议书电子可打印范本
- 北师大版小学数学三年级上册《认识小数》的说课稿
- 高血压性肾脏病的诊断和综合治疗进展
- 提升公众演讲与演示能力的技巧
- 国家开放大学-传感器与测试技术实验报告(实验成绩)
- AutoCAD辅助园林景观设计
- 八年级上册道德与法治教材“探究与分享”参考答案
- 30道油气储运岗位常见面试问题含HR问题考察点及参考回答
评论
0/150
提交评论