您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Java语言程序设计教程第11章常用工具包和类
[Return]第11章常用工具包和类11.1Java常用工具包11.2简单类型包装器11.3Object类11.4Class类11.5Package类11.6Runtime类11.7System类11.8Math类本章将介绍Java语言中的常用工具包和类。这些工具包和类在编程过程中经常用到,有些甚至是必不可少的,如java.lang包、System类等。熟练掌握本章所介绍的系统工具包和系统类,将为进一步学习Java编程打下良好的基础。[Return]11.1Java常用工具包在Java中,系统提供了大量的包以满足面向对象、网络化、编程的需要。本节将对一些常用的工具包作简要介绍。11.1.1JavaAPI包11.1.2java.lang11.1.1JavaAPI包在Java1.0被发布时,它包括一系列的8个包,被称作核心应用编程接口(API)。其中许多包在前面的章节中我们已介绍过,而且编程时经常用到。现在,每当发布一个Java新版本时,都会增加一些核心API,当然还有其他一些有用的工具包。在J2SE1.2版本中,60个包总共提供了1781个公共类和接口;在J2SE1.3版本中,70多个包提供的公共类和接口超过2100个;在J2SE1.4版本中,120多个包提供了总数超过2600个的公共类和接口。以下是一些经常用到的工具包:l语言包(java.lang)提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等,可以用它简单地实现Java程序的运行平台;l输入输出包(java.io)使用统一的“流”模型来实现所有格式的I/O,包括文件系统、网络传输、输入/出设备等;l实用程序包(java.util)提供的支持包括哈希表、堆栈以及时间和日期等;l抽象窗口工具集包(java.awt)实现了不同平台上的计算机图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同的运行环境;l网络包(java.net)支持Internet的TCP/IP协议,提供了与Internet的接口。它支持URL连接,的即时访问,并且简化了C/S(客户/服务器)模型的程序设计。另外比较常见的Java包还有:java.math、java.sql、java.text、java.rmi、java.beans以及java.security等。教材P268页中的表11-1,列出了所有被Java2定义的Java核心API包并对它们作了简要描述。[Return]11.1.2java.lang其实,我们前面章节编写的每个Java程序都与java.lang有关。但之所以没说明,是因为java.lang被自动导入所有的程序。它所包含的类和接口对所有Java程序都是必要的,是Java中最广泛使用的包。教材P269页给出了java.lang中主要包括的类。另外,还有两个由Character定义的类:Character.Subset和Character.UnicodeBlock,它们是在Java2中新增加的。java.lang中也定义了如下的接口:lCloneable接口lComparable接口lRunnable接口其中,Comparable接口是在Java2中新增加的。java.lang中的几个类包含了过时的方法,其中的大多数可以追溯到Java1.0。在Java2中仍然提供了这些方法,用于支持逐渐减少的老程序,而这些方法在新程序中不被推荐使用。大多数过时的方法出现在Java2之前,因此我们不准备讨论这些方法。[Return][Return]11.2简单类型包装器11.2.1Number11.2.2DoubleFloat11.2.3Byte、Short、Integer和Long11.2.4Character11.2.5Boolean类11.2.6关于Vector11.2.7Void和Process在教材2.3节中我们提到过,Java使用简单的类型,如整型(int)、字符(char)等数据类型不是对象层次结构的组成部分,它们通过值传递给方法而不能直接通过引用传递。而且也没有办法使两种方法对整型(int)引用同一实例(sameinstance)。但是,有时需要对这些简单的类型建立对象表达式,如处理对象的枚举类,要将简单类型存储到这些类中的一个,需要在类中包装简单类型。为了满足这种需要,Java提供了与每一个简单类型相对应的类。从本质上讲,这些类在类中包装简单类型,因此通常被称作类型包装器(wrappers)。[Return]11.2.1Number抽象类Number定义了一个由包装数字类型字节型(Byte)、短整型(Short)、整型(Int)、长整型(Long)、浮点型(Float)和双精度型(Double)的类实现的超类。Number有返回上面不同数字格式的对象值的抽象方法。也就是,doubleValue()方法返回双精度(Double)值,floatValue()方法返回浮点(Float)值等。这些方法如下:bytebyteValue()doubledoubleValue()floatfloatValue()intintValue()longlongValue()shortshortValue()Number有6个具体的子类包含了6种数字类型的显式值:双精度型(Double)、浮点型(Float)、字节型(Byte)、短整型(Short)、整型(Integer)和长整型(Long)。11.2.2DoubleFloat双精度(Double)和浮点(Float)分别是对类型double和类型float的浮点值的包装器。浮点(Float)构造函数如下所示:Float(doublenum)Float(floatnum)Float(Stringstr)throwNumberFormatException如上可见,浮点(Float)对象可以由类型float或类型double的值创建。它们也能由浮点数的字符串表达式创建。双精度(Double)的构造函数如下。Double(doublenum)Double(Stringstr)throwNumberFormatException双精度(Double)对象可以被双精度(Double)值或包含了浮点值的字符串创建。浮点(Float)和双精度(Double)都定义了一些常数,这些常数见教材P270页。由浮点(Float)定义的方法见教材P271页表11-2。由双精度(Double)定义的方法见教材P271页表11-3。[Return]11.2.3Byte、Short、Integer和LongByte、Short、Integer和Long类分别是字节型(byte)、短整型(short)、整型(int)和长整型(long)整数类型的包装器。它们的构造函数分别如下:Byte(bytenum)Byte(Stringstr)throwNumberFormatExceptionShort(shortnum)Short(Stringstr)throwNumberFormatExceptionInteger(intnum)Integer(Stringstr)throwNumberFormatExceptionLong(longnum)Long(Stringstr)throwNumberFormatException正如上所示,这些对象可由数值或含有有效整数值的字符串创建。下面讨论如何进行数字和字符串的转换问题。在程序设计中,一个最常见的问题是将一个数字的字符串表达式转换成内部的二进制格式。Java为此提供了一个方便的方法去完成这项任务。Byte、Short、Integer和Long类分别提供了parseByte()、parseShort()、parseInt()和parseLong()方法。这些方法返回与调用它们的数值字符串相应的字节(byte)、短整型(short)、整型(int)和长整型(long)值。在Float和Double类中也有相似的方法。教材P274页的程序说明了parseInt()方法的使用。[Return]11.2.4Character字符(Character)是围绕字符型(char)的一个简单的包装器。字符(Character)的构造函数如下:Character(charch)这里,ch指定了被创建的字符(Character)对象所包装的字符。调用如下的charValue()方法可以获得包含在字符(Character)对象中的字符型(char)值。charcharValue()调用的结果返回字符。字符(Character)类定义的常数见教材P275页。字符(Character)包括了几个静态方法,这些方法将字符分类并改变其大小写。这些方法见教材P275~276页表11-4。关于这些方法的使用见教材P276页的示例。[Return]11.2.5Boolean类Boolean是一个围绕布尔(boolean)值的非常细小的包装器,主要用在通过引用传递布尔(boolean)变量的场合。它包含了常数TRUE和FALSE,这些常数定义了布尔(Boolean)对象的真与假。Boolean也定义了TYPE域,它是boolean的Class对象。在Boolean中定义了如下的构造函数:Boolean(booleanboolValue)Boolean(StringboolString)在第一种形式中,boolValue要么是true,要么是false。在第二种形式中,如果在boolString中包含了字符串“true”(无论是大写形式还是小写形式),则新的布尔(Boolean)对象将为真,否则为假。Boolean定义了教材P277页表11-5中所列出的方法。[Return]11.2.6关于Vector向量(Vector)是由java.util包提供的,它允许提供不同类型元素共存的变长数组。Vector类的特点如下。l需要处理的对象数目不定,序列中的元素都是对象,或者可以表示成对象。l需要将不同类的对象组合成一个数据序列。l需要做频繁的对象序列中元素的插入和删除。l经常需要定位序列中的对象或其他查找操作。l在不同的类之间传递大量的数据。其局限性是对象不能是简单类型,但这可以通过数组(Array)实现。(1)创建向量类的对象:publicVector(intinitCapacity,intcapacityIncrement);其中,initCapacity表示刚创建时Vector序列包含的元素数目,capacityIncrement表示如果向Vector序列中加元素,一次性加多少个。(2)向向量序列中加元素:addElement(Objectobj)insertElement(Objectobj,intindex)(3)修改和删除向量序列中元素:setElementAt(Objectobj,intindex)removeElement(Objectobj)removeElementAt(intindex)removeAllElements()(4)查找向量序列中元素:elementAt(intindex)contains(Objectobj)lastIndexOf(Objectobj,intstart_index)[Return][Return]11.2.7Void和ProcessVoid类有一个TYPE域,该域保存对类型void的Class对象的引用。这样做将不创建类的实例。抽象类Process封装了一个进程(process),也就是一个正在执行的程序。它主要被当作由Runtime类中的exec()方法所创建的对象的类型的超类。Runtime类将在后面介绍。在抽象类Process中,包含了教材P278页表11-6中所列出的抽象方法。[Return]11.3Object类11.3.1Object11.3.2使用clone()和Cloneable接口这里大致介绍一下Object类。在Java中,定义有一种特殊的类Object,其
本文标题:Java语言程序设计教程第11章常用工具包和类
链接地址:https://www.777doc.com/doc-2879072 .html