第七章常用工具.ppt





《第七章常用工具.ppt》由会员分享,可在线阅读,更多相关《第七章常用工具.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章常用工具、算法与数据结构7.1java的类库Java程序是由类的定义组成的,编写java的过程就是设计各种类和确定它们相互作用关系的过程。为了简化面向对象的编程过程,java事先设计并实现了一些体现常用功能的标准类,这些系统标准类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。什么是API?面向对象编程中的系统标准类和类库类似于面向过程编程中的库函数,都是一种应用程序编程接口,简称为API(ApplicationProgramInterface)7.1.1java的类库结构Java的类库是系统已实现的标准类的集合,是java编程的API,它可以帮助开发者方便、快捷
2、的开发java程序。根据功能的不同,java的类库被划分为若干个不同的包,每个包中都有若干个具有特定功能和相互关系的类和接口。在java中使用类库的方法是在程序的开头用import语句引入。Java1.0类库java.lang包java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理等。这个包的加载是缺省的,不需要用import引入,系统自动加载。Java.io包Java.io包是java的标准输入/输出类库,凡是完成与操作系统有关的较底层的输入输出操作的java程序,都应在程序开头用import语句引入:importjava.io.
3、*;Java.util包这个包包括了java语言中的一些低级的实用工具,如处理时间的Date类、处理变长数组的Vector类、实现栈和杂凑表的Stack类和HashTable类等Java.awt包是java构建用户图形界面的类库。Java.applet包它仅包含一个有用的类,java.applet.Applet,实现运行于Internet浏览器中的javaApplet的工具类库。J包java语言用于实现网络功能的类库。Java1.1类库这个类库是对1.0内容的扩充和修正。(1)java.corba包和java.corba.orb包(2)java.lang.reflect(3)java.rmi包
4、、java.registry包和java.rmi.server包(4)java.security包、java.security.acl包和java.security.interfaces包(5)java.util.zip包(6)java.awt.dataransfer包(7)java.awt.event包(8)java.sql包是实现jdbc的类库,使java程序可以连接不同类型的数据库如Oracle、Sysbase、SQLServer、Mysql、Postgres等。3Java1.2简介Java1.2又称为java2,它可以细化为三个版本:(1)企业版主要用于服务器上运行的java应用,如E
5、JB和JSP两个部件。(2)标准版主要用于台式机上。(3)微型版主要用于移动电话、机顶盒、汽车导航系统等小型移动电话智能装置。关于更新的java类库的情况,可以参考SUN公司的网络文档,站点为:http:/7.1.2语言基础类类库本节后面的章节将围绕不同的具体功能来介绍实现他们的相应的类库。首先介绍基本的java.lang包。1.Object类Object是java程序中所有类的直接或间接父类,也是类库中所有类的父类。2.数据类型类每一个基本数据类型都对应一个数据类型类(见表7.1)。如果不同的数据类型要相互转换,则就要用到相应数据类型类的方法。比如:Interger.parseInt(Str
6、ings)数据类型类基本数据类型BooleanbooleanCharactercharDoubledoubleFloatfloatIntergerintergerLonglong下面以Interger为例,介绍其中的方法及其作用。其它类型Interger类相近。(1)MAX_VALUE域和MIN_VALUE域分别定义了int类型量的最大值和最小值。(2)构造函数:publicInterger(intvalue)publicInterger(Strings)可以分别利用int和String类型的量生成一个Integer类型的对象。(3)数据类型转换方法分别将当前对象所对应的int量转换为其它基本
7、数据类型的量并返回转换后的值。publicdoubledoubleValue()publicintintValue()publiclonglongValue()(4)字符串与int量相互转换的方法:publicStringtoString()方法将当前对象对应的int量转换为字符串。publicstaticintparseInt(Strings)方法是类的方法,它无需Integer对象,就可以方便的将字符串转换为int量。publicstaticIntergervalueOf(Strings)方法也是类的方法,它将一个字符串转换为Integer对象,再调用这个对象的intValue()方法返回
8、其对应的int数值。对于有些数据类型,如double和float,由于没有parseInt()这样的方法,所以只能用这种方法。3、Math类用来完成一些常用的数学运算,提供了若干实现不同标准数学函数的方法,这些方法都是static的,所以在使用的时候不需创建这种类型的对象,直接用类名做前缀。比如求两个整数的最大值:intI=9,j=7,k;k=Math.max(i,j);求110之间的一个随机数inti=(int)(Math.random*10);下面是Math类的主要属性和方法:publicfinalstaticdoubleE;/数学常量epublicfinalstaticdoublePI;
9、/圆周率常量publicfinalstaticabs(doublea);/求绝对值publicfinalstaticacos(doublea);/反余弦publicfinalstaticexp(doublea);/求e的参数次幂publicfinalstaticfloor(doublea);/求不大于参数的最大整数PublicstaticdoubleIEEEremainder(doublef1,doublef2);/求余Publicstaticdoublelog(doublea);/求自然对数Publicstaticdoublemax(doublea,doubleb);/求最大值Publics
10、taticfloatmin(floata,floatb);/求最小值Publicstaticdoublepow(doublea,doubleb);/求乘方Publicstaticdoublerandom();/产生0到1(不含1)之间的伪随机数Publicstaticdoublerint(doublea);/四舍五入Publicstaticdoublesqrt(doublea);/平方4、System类(1)用System类获取标准输入输出System类的属性有三个,分别是系统的标准输入、标准输出和标准错误输出;publicstaticInputStreamin;publicstaticPri
11、ntStreamout;publicstaticPrintStreamerr;charc=System.in.read();/从标准输入读入一个字节的信息并返回给一个字符常量System.out.println(“hello!guys,”);/从标准输出输出字符串(2)用System类的方法获取系统信息、完成系统操作System类提供了一些用来与java的系统进行交互操作的方法,利用他们可以获取java解释器和硬件平台的系统参量信息。publicstaticlongcurrentTimeMillis();获取自1970年1月1日零时至当前系统时刻的微秒数。publicstaticvoidexi
12、t(intstatus);在程序的用户线程执行完成之前,强制java虚拟机退出运行状态,并把状态信息返回给虚拟机的操作系统,如:System.exit(0);7.2数组与向量类7.2.1数组在java中数组的元素可以是简单类型的量,也可以是某一类的对象。数组的特点:l数组中元素类型相同l各元素是有先后顺序的l每个数组元素用数组名和它在数组中的顺序位置来表达,例如a0,代表数组名为a的第一个元素。创建一个java数组需要下面三个步骤:1、声明数组2、创建数组空间3、创建数组元素并初始化1.声明数组声明数组主要是声明数组的名称和数组所包含的元素的数据类型或元素的类名。格式为:格式1:数组元素类型数
13、组名;格式2:数组元素类型数组名;如:intMyIntArray;EmployeeEmployeeOFDept;2.创建数组空间Java不支持变长的数组,所以在创建数组空间时必须指明数组的长度,以确定开辟内存空间的大小。格式:数组名new数组元素类型数组元素的个数;如:MyIntArray=newint10;EmployeeOfDept=newEmployee15;创建数组空间的工作也可以与声明数组放在一起,用一条语句完成,例如:intMyIntArray=newint10;EmployeeEmployeeOFDept=newEmployee15;对于数组元素是基本数据类型的数组,还可以在创建
14、数组空间的同时给出数组元素的初值,而省略创建空间的new。intMyIntArray=1,2,3,4,5,6,7,8,9,10;3.创建数组元素并初始化对于基本数据类型,都有缺省的初值,所以可以没有这一步。如果数组元素为对象,则创建数组元素并初始化是必不可少的。例如上面的数组EmployeeOfDept,它的每个数组元素都是一个Employee类的对象,在创建对象的同时必须执行它的构造函数。for(inti=0;iEmployeeOfDept.length;i+)EmployeeOfDepti=newEmployeeOfDept(.)从上面初始化数组的代码中,我们发现在使用java数组时还要注
15、意几个问题:(1)下标从0开始,下标的类型必须是整型或者可以转换为整型的量;(2)所有的数组都有一个属性length,返回数组元素的个数;(3)Java系统能自动检查是否有下标越界的情况,例如MyIntArray的长度为10,下标从0到9,如果引用了MyIntArray10,程序就会出错,所以最好用数组的长度作为下标的上界;7.2.2向量类Vector实现了变长数组。比较适合在下列情况下使用:(1)需要处理的对象数目不定;序列中的元素都是对象,或可以表示为对象;(2)需要将不同类的对象组合成一个数据序列(3)需要做频繁的对对象序列中的元素进行插入和删除(4)经常需要定位序列中的对象或其它的查找
16、操作(5)在不同的类之间传递大量的数据也可以使用Vector(6)Vector类的方法相对于数组要多一些,但是使用这个类也有一定的局限性,例如,其中的对象不能是简单数据类型等。一般在下面情况下,使用数组比较合适:1)序列中的数据是简单数据类型的数据2)序列中的元素的数目相对固定,插入、删除和查找操作较少。1、创建向量类的对象使用Vector类需要引入util包,即:importjava.util.Vector;Vector类的构造函数:publicVector(intinitCapacity,intcapacityIncrement);initCapacity:表示刚创建时Vector序列包含
17、的元素个数;capacityIncrement:表示如果需要向Vector中追加元素,一次性的追加多少个。例如:VectorMyVector=newVector(100,50);2、向向量序列中添加元素方法有两种:addElement(Objectobj)方法将新元素添加在向量序列的尾部insertElement(Objectobj,intindex)方法将新元素插入在序列指定的位置处:/object是对象,index是位置,0为第一个位置。下面是使用这两个方法的例子VectorMyVector=newVector();for(inti=1;i=10;i+)Stringname=“部门”+In
18、teger.toString(i);MyVector.addElement(newDepartment(i,name);MyVector.insertElement(newManagerEmployee(0,”总经理“,1000,f,newDate(),newDate(),0);3.修改和删除向量序列中的元素修改和删除向量序列中的元素有如下几个方法:有如下几个方法:void setElement(Object obj,int index);将向量序列将向量序列index位置处的对象元素设置成为位置处的对象元素设置成为obj,如果这如果这个位置原来有元素则被覆盖。个位置原来有元素则被覆盖。Boo
19、lean removeElement(Object obj);删除向量序列中第一个与指定的删除向量序列中第一个与指定的obj相同的元素,同时后相同的元素,同时后面的元素前移一位。面的元素前移一位。void removeElement(int index);删除指定位置处的元素,同时后面的元素前移删除指定位置处的元素,同时后面的元素前移void removeAllElement();删除向量中的所有元素。删除向量中的所有元素。下面的例子:VectorMyVector=newVector(100)for(inti=0;i10;i+)MyVector.addElement(“Welcom”);MyV
20、ector.addElement(“to”);MyVector.addElement(“Beijing”);While(MyVector.removeElement(“to”);删除所有“to”对象4.查找向量序列中的元素Object elementAt(int index);返回指定位置处的元素。返回指定位置处的元素。注意:返回的是注意:返回的是Object类型的对象,在使用之前要把类型的对象,在使用之前要把Object强制转换成具体的子类对象,例如,强制转换成具体的子类对象,例如,String str=(String)MyVector.elementAt(0);此语句把此语句把Object
21、强制转换成强制转换成String类型。类型。Boolean contains(Object obj);检查向量序列是否包含指定的对象元素,是则返回检查向量序列是否包含指定的对象元素,是则返回true,否则返回否则返回false。int indexOf(Object obj,int start_index);从指定的从指定的start_index位置开始向后搜索,返回第一个与指位置开始向后搜索,返回第一个与指定对象定对象Object相同的元素的下标位置,若指定的对象不相同的元素的下标位置,若指定的对象不存在,返回存在,返回1。intlastIndexOf(Objectobj,intstart_i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 常用工具

限制150内