第5讲_基础类库与工具类库_第1页
第5讲_基础类库与工具类库_第2页
第5讲_基础类库与工具类库_第3页
第5讲_基础类库与工具类库_第4页
第5讲_基础类库与工具类库_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计,基础类库和工具类库,3,Java类库,Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(ApplicationProgramInterface),它可以帮助开发者方便、快捷地开发Java程序。这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。Java的类库大部分是由它的发明者SUN公司提供的,这些类库称为基础类库(JFC)。API应用程序编程接口面向过程语言函数库(子程序包)面向对象语言类库,4,Java类库,类库的结构java.lang语言基础类库(System、Math、Thread、基本数据类型类)java.utilJava的工具类库(向量、栈、日期)java.ioJava的标准输入输出类库java.applet用于实现JavaApplet小程序的类库java.awt用于构建图形用户界面的类库java.awt.event界面用户交互控制和事件响应类库Java的用于实现网络功能的类库使用JDKDocument查看类库,5,语言基础类库-Object类,Java程序中所有类的直接或间接父类,也是类库中所有类的的父类,所有的其他类都是从Object类派生。构造方法:Object()一般方法:Objectclone()生成当前对象的一个拷贝。booleanequals(Objectobj)比较两个对象是否相同。ClassgetClass()获取当前对象所属的类信息。StringtoString()用来返回当前对象本身的有关信息。,6,语言基础类库-Class类,Java运行时系统会对所有的对象进行类型识别publicfinalClassextendsObject一般方法:StringgetName()返回类名。FieldgetFields()返回类的public域对象。MethodgetMethods()返回类的public方法对象。PackagegetPackage()返回该类的包。Field类StringgetName()取域名Method类StringgetName()取方法名Package类StringgetName(),2,7,语言基础类库:数据类型类,基本数据类型vs.数据类型类booleanvsBoolean,charvsCharacter等数据类型类规定了数据类型的最大值、最小值构造方法:如newInteger(10);完成不同数据类型间转换,注意不同的数据类型类使用的方法会有不同。Double.toString(0.08)、Integer.parseInt(“123”)、Double.ValueOf(“0.08”).intValue()等(见JDKDoc),8,语言基础类库:Math类,Math类用来完成常用的数学运算数学常量:E,PI数学运算Math.abs(-8.09);Math.exp(5.7);Math.random();Math.sqrt(9.08);Math.pow(2,3);/乘方Math.round(99.6);均为static,使用时无需创建实例Math.method(variable);,9,数学运算的Math类,属性publicfinalstaticdoubleE;/数学常量epublicfinalstaticdoublePI;/圆周率常量方法(均为静态方法)publicstaticintabs(inti);publicstaticdoublesin(doublea);publicstaticdoublelog(doublea);publicstaticdoublemax(doublea,doubleb);publicstaticdoublepow(doublea,doubleb);publicstaticdoublerandom();/产生01之间伪随机数,10,数学运算的Math类,publicstaticdoubleexp(doublea);publicstaticintround(floata);publicstaticdoublesqrt(doublea);例:System.out.println(Math.E);2.718281828.System.out.println(Math.PI);3.14159265System.out.println(Math.pow(2,3);8.0System.out.println(Math.round(99.6);100System.out.println(Math.abs(-8.09);8.09,1,11,语言基础类库:System类,System是一个功能强大的类,它提供了标准输入输出、运行时的系统信息等工具系统功能类获取系统标准输入/输出System.in,System.out,System.err获取系统信息System.currentTimeMillis()执行系统操作System.exit(0);System.gc();,12,System类,属性publicstaticInputStreaminpublicstaticPrintStreamoutpublicstaticPrintStreamerr获取系统信息、完成系统操作的方法publicstaticlongcurrentTimeMillis();获取自1970年1月1日零时至当前系统时刻的毫秒数972370687290publicstaticvoidexit(intstatus);强制Java虚拟机退出运行状态,并把状态信息status返回给运行虚拟机的操作系统。System.exit(0);publicstaticvoidgc();强制调用Java虚拟机的垃圾回收功能。,13,向量类-Vector,java.util.VectorVector是一组对象的集合,Vector可以追加对象元素的数量,方便地修改和维护序列中的对象。适合于如下的情况需要处理的对象数目不定序列中元素都是对象,而不是基本数据类型的量需要做频繁的元素插入和删除需要定位序列中的对象或其他查找操作0123,14,创建向量类对象,创建向量类的对象VectormyVector=newVector();创建空的向量对象(初始容量为10)优化存储管理VectormyVector=newVector(100);创建空的向量对象(初始容量为100)VectormyVector=newVector(100,50);创建空的向量对象(初始容量为100,增量为50),15,向量元素操作,追加元素addElement(Objectobj)插入元素insertElement(Objectobj,intindex)修改向量中的元素setElementAt(Objectobj,intindex)删除向量中的指定元素removeElementAt(intindex)BooleanremoveElement(Objectobj)removeAllElements(),16,向量元素操作,取出向量中的指定元素Objectget(intindex)测试对象在向量中是否存在booleancontains(Objectobj)查找指定元素的位置intindexOf(Objectobj)intindexOf(Objectobj,intstart_index),17,向量元素操作,返回指定位置的元素ObjectelementAt(intindex)由于返回的是Object类型的对象,在使用前要进行强制类型转换,将返回的对象引用转换成Object类的某个具体子类的对象。Stringstr=(String)MyVector.elementAt(0);返回一个包含向量中所有元素的对象数组ObjecttoArray(),18,获取向量信息,清空向量(删除所有元素)clear()测试向量是否为空booleanisEmpty()当前向量元素数量intsize()向量当前容量intcapacity(),4,19,例:CatsAndDogs.javapublicclassCatsAndDogspublicstaticvoidmain(Stringargs)Vectorcats=newVector();for(inti=0;i7;i+)cats.addElement(newCat(i);/Notaproblemtoaddadogtocats:cats.addElement(newDog(7);for(inti=0;icats.size();i+)(Cat)cats.elementAt(i).print();/Dogisdetectedonlyatrun-time/改为:if(cats.elementAt(i)instanceofCat)缺点:Object的类型不确定;对象的类型不匹配只能在运行期才能被检测出来,20,工具类库:日期,Calendar(表示日期和时间)getInstance():得到表示当前时间的实例get(int):获取相应信息如:get(Calendar.YEAR)set(int,int):如:set(Calendar.YEAR,1999)set(year,month,date):set用来设置信息Calendar.getTime():得到当前时间的Date对象GregorianCalendar有不同的构造方法,用来创建实例。如:GregorianCalender(year,month,date,),21,日期类Calendar,抽象类,在Date对象和一组整数域之间进行转换:YEAR,MONTH,DAY,HOUR,Calendarc=Calendar.getInstance();intc.get(Calendar.YEAR)intc.get(Calendar.MONTH)(1月为0)intc.get(Calendar.DATE)intc.get(Calendar.HOUR)intc.get(Calendar.MINUTE)intc.get(Calendar.SECOND)Datec.getTime(),22,日期类Calendar,c.set(Calendar.YEAR,2000)c.set(Calendar.MONTH,10)(11月)c.set(Calendar.DATE,7)c.set(2000,10,7)c.set(2000,10,7,17,48,20),23,日期类Date,构造方法Date()初始化时间对象方法longgetTime()获取自1970.1.1零时至当前系统时刻的毫秒数其他若干方法intgetDate()获取系统当前日期,5,24,示例-银行帐户,25,工具类库:栈,java.util.Stack(常用的线性数据结构)栈底:固定的一端栈顶:数据元素进出的一端遵循:“后进先出”原则常用的堆栈操作创建堆栈:Stack()压栈操作:push(Object)弹栈操作:pop(),26,堆栈Stack,是Vector的子类构造方法Stack()建立一个新的栈方法booleanempty()测试栈是否空Objectpeek()查看栈顶元素Objectpop()弹栈(出栈)Objectpush(Objectitem)压栈(进栈)intsea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论