第6章 Java常用实用类_第1页
第6章 Java常用实用类_第2页
第6章 Java常用实用类_第3页
第6章 Java常用实用类_第4页
第6章 Java常用实用类_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

6.1JavaAPI简介6.2Object类6.3字符串处理类6.4基本数据类型包装类6.5Math类和Random类6.6日期处理类6.7Arrays类6.8Class类6.9案例分析与实现(续3)第6章Java常用实用类本章教学内容:本章教学目标:理解JavaAPI的概念了解Object类掌握String类、StringBuffer类和StringTokenizer类的用法掌握基本数据类型封装类的用法掌握Math类和Random类的用法掌握Date类和Calendar类的用法掌握Arrays类的用法了解Class类的用法6.1JavaAPI简介API就是应用程序编程接口,是一些已写好、可供直接调用的类库。JavaAPI包含的内容很多,本章主要讨论其中两个最基本的包中的主要类:(1)语言包(java.lang)。是Java的核心类库,包含了运行Java程序必不可少的系统类,是Java语言编程使用最频繁的包。为了简化编程,系统默认导入了java.lang包,所以使用java.lang包中的类时可以不用import语句导入。(2)实用程序包(java.util)。在这个包中,Java提供了一些实用的方法和数据结构。6.2Object类Object类是所有类的父类。在Java体系中,所有类都是直接或间接的继承了Object类。如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承Object类。因此,Object类是Java类层中的最高层类,是所有类的超类。换句话说,Java中任何一个类都是它的子类。1.toString()方法Object类中定义了publicStringtoString()方法,其返回值是String类型,描述当前对象的有关信息。在进行String与其他类型数据(引用类型)的连接操作时或打印对象时,将自动调用该对象的toString()方法。实例6-1重新定义Employee类,并重写其toString()方法。默认情况下toString()方法返回的字符串格式是“类名@哈希码”,一般情况下需要重写toString()方法。

2.equals(Objectobj)方法equals(Objectobj)方法与Java运算符"=="的含义相同,但用法不同。当两个值比较、对象或变量与值比较、两个变量比较时,使用运算符"==";当比较两个对象时,使用equals()方法。该方法调用返回true时表示两个对象相等(或称相同),返回false时表示两个对象不相等。实例6-2编程演示“equals()方法“和“==”运算符比较对象时的异同。

3.getClass()方法getClass()方法返回调用该方法的对象所属的类。实例6-3编程演示getClass()方法的使用。6.3字符串处理类6.3.1String类java.lang包中String类代表字符串。Java程序中的所有字符串字面值(”abc”)都作为此类的实例来实现。字符串是常量,它们的值在创建之后不能改变,因此String对象是不可改变的。String类主要用于比较两个字符串、查找和抽取串中的字符或子串、字符串与其它类型之间的相互转换等操作,操作的结果通常得到一个新字符串,但不会改变源串的内容。String类常用构造方法String类常用构造方法见表6-2。表6-2String类常用构造方法1.String类常用构造方法构造方法说

明String()初始化一个新的String对象,使其包含一个空字符串String(Stringvalue)初始化一个新的String对象,使其包含和参数字符串相同的字符序列String(char[]value)分配一个新的String对象,使它代表字符数组参数包含的字符序列String(char[]value,intoffset,intcount)分配一个新的String对象,使它包含来自字符数组参数中子数组的字符String(byte[]value)分配一个新的String对象,使它代表字节数组参数包含的字符序列String(StringBufferbuffer)初始化一个新的String对象,它包含字符串缓冲区参数中的字符序列2.String类常用方法实例6-4length()方法的使用:求指定字符串的长度。实例6-5==运算符与equals()方法的使用。实例6-6使用+运算符和concat()方法实现字符串的连接。实例6-7在字符串中查找字符和子串。

6.3.2StringBuffer类StringBuffer类用于内容可以改变的字符串,可以将其它各种类型的数据增加、插入到字符串中,也可以转置字符串中原来的内容。Java为字符串提供了特别的连接操作符(+),可以把其它各种类型的数据转换成字符串,并前后连接成新的字符串。实际上连接操作符(+)的功能是通过

StringBuffer类和它的

append方法实现的。

2.StringBuffer类的常用方法常用方法说明StringBufferappend(Objectobj)将某个对象的串描述添加到StringBuffer尾部。StringBufferinsert(intposition,Objectobj)将某个对象的串描述插入到StringBuffer中的某个位置。StringBufferinsert(intindex,char[]str,intoffset,intlen)将字符数组str中从offset位置开始的len个字符插入到串的index位置。StringBuffersetCharAt(intposition,charch)用新字符替换指定位置字符。StringBufferdeleteCharAt(intposition)删除指定位置的字符。StringBufferreplace(intstart,intend,Stringstr)将参数指定范围的一个子串用新串替换。Stringsubstring(intstart,intend)获取所指定范围的子串。实例6-8改变字符串的内容。实例6-9将一个字符串反转。

6.3.3StringTokenizer类在实际应用中,有时需要分析字符串并将字符串分解成可被独立使用的单词,这些单词叫做语言符号。例如:对于字符串“WeareStudents”,如果把空格作为分隔符,那么该字符串有三个单词(语言符号)。而对于字符串"We,are,Students",如果把逗号作为分隔符,那么该字符串也有三个单词。当分析一个字符串并将该字符串分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类。

1.StringTokenizer类常用的构造方法

(1)StringTokenizer(Strings):为字符串s构造一个分析器.使用默认的分隔符集合,即空格符(若干个空格被看成一个空格)、换行符、回车符、Tab符等。

(2)StringTokenizer(Strings,Stringdelim):为字符串s构造一个分析器,参数dilim中的字符被作为分隔符。

2.StringTokenizer类常用的方法nextToken()方法hasMoreTokens()方法countTokens()方法实例6-10分析给定字符串,分别输出字符串的单词,并统计出单词个数。6.4基本数据类型包装类在Java中,基本数据类型不作为对象使用。这样做的原因时效率问题,因为处理对象需要额外的系统开销。然而许多Java的方法需要对象作参数,这时Java在java.lang包中提供了一个方便的办法:将基本数据类型包装成对应的包装类。Java中的基本数据类型共有八种,那么与之相对应的包装类也同样是有八种。

1.包装类的构造方法可以从基本的数据类型或从表示数值的字符串来构造数值包装对象。以Integer类为例。Integer类的构造方法如下:publicInteger(intvalue)publicInteger(Strings)

2.数值类的常量每个数值包装类都有常量MAX_VALUE和MIN_VALUE。MAX_VALUE表示对应基本类型的最大值;MIN_VALUE表示对应基本类型的最小值。3.类型转换方法每个包装类均提供有相应的方法用来从包装对象中抽取相应的数据。Boolean类的对象,可以调用booleanValue()方法从包装对象中抽取相应的数据。

Integer类的对象,可以调用intValue()方法从包装对象中抽取相应的数据。Character的对象,可以用charValue()方法从包装对象中抽取相应的数据。

4.包装类提供的各种static方法Character类提供有isDigit(charch)方法可判断一个字符是否为数字。

除Character类外的所有包装类均提供有valueOf(Strings)的静态方法,它将得到一个相应类型的对象。还有一组非常有用的静态包装方法是parseXXX()方法,可以将“数字”格式的字符串转化为相应的基本数据类型。

5.使用Long类的下述方法可以得到整数的各种进制的字符串表示publicstaticStringtoBinaryString(longn)publicstaticStringtoOctalString(longn)publicstaticStringtoHexString(longn)publicstaticStringtoString(longn,intp)

6.使用String类的valueOf()方法可以将数值转化为相应的字符串publicstaticStringvalueOf(byten)publicstaticStringvalueOf(intn)publicstaticStringvalueOf(longn)publicstaticStringvalueOf(floatn)publicstaticStringvalueOf(doublen)实例6-11

将数字字符串转化为对应的整数。实例6-12将整型数据包装成Integer类的对象,再将其转换为基本数据类型。实例6-13基本数据类型与包装类对象运算操作。6.5Math类和Random类6.5.1Math类Java.lang包中的Math类也称数学类,是一个工具类,它在解决与数学计算有关的一些问题时有着很重要的作用。Math类包含了一组基本的数学运算的方法和常数。如求绝对值的abs()方法,计算三角函数的sin()方法和cos()方法,求两个数中的较小值和较大值的min()方法和max()方法,求随机数的random()方法等。Math类是最终类(final),不能从Math类中派生其他的新类。因此只能使用Math类的方法而不能对其作任何修改.实例6-14Math类中主要方法应用举例。实例6-15随机产生10个100以内的正整数并输出。

6.5.2Random类

Java.util包中的Random类是一个随机数产生器,此类的实例用于生成伪随机数流。随机数是按照某种算法产生的,一旦用一个初值创建

Random对象,就可以得到一系列的随机数,但如果用相同的初值创建Random对象,得到的随机数序列是相同的,也就是说,在程序中看到的“随机数”是固定的那些数,起不到“随机”的作用,针对这个问题,Java设计者们在

Random类的

Random()构造方法中使用当前的时间来初始化

Random对象,因为没有任何时刻的时间是相同的,所以就可以减少随机数序列相同的可能性。

1.Random类构造方法Random类提供了两个构造方法:带参数(即带种子)和不带参数(即不带种子)。如果没有提供参数,Random实例的参数将是当前时间的毫秒数。2.Random类的常用方法(1)intnextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的

int值。(2)intnextInt(intn):返回一个伪随机数,它是从此随机数生成器的序列中取出的、在

0(包括)和指定值(不包括)之间均匀分布的

int值。(3)longnextLong():返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的

long值。

(4)doublenextDouble():返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在

0.0和

1.0之间均匀分布的

double值。(5)floatnextFloat():返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在

0.0和

1.0之间均匀分布的

float值。(6)booleannextBoolean():返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的

boolean值。(7)voidnextBytes(byte[]bytes)::生成随机字节并将其置于用户提供的字节数组中。实例6-16利用不带参数的构造方法创建两个随机数生成器对象,分别随机产生一个整数、一个实数、一个布尔值并输出。实例6-17利用带参数的构造方法创建两个随机数生成器对象,分别随机产生一个整数、一个实数、一个布尔值并输出。实例6-18随机产生10个100以内的整数并输出。6.6日期处理类6.6.1Date类java.util包中的Date类表示特定的瞬间,精确到毫秒。使用Date类的无参构造方法Date()创建的Date对象可以获取本地当前时间。Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年。

1.Date类的构造方法

(1)无参构造方法例如:使用系统的当前日期和时间创建一个日期对象。语句如下:Datedate=newDate();System.out.println("当前日期为:"+date);实例6-19使用系统的当前日期和时间创建一个日期对象并返回一个长整数。

(2)有参构造方法例如:通过有参构造方法获取当前系统时间。语句如下:longct=System.currentTimeMillis();Dated=newDate(ct);实例6-19使用有参构造方法创建一个日期对象。

2.日期的格式化在编写程序时,通常都希望按照某种习惯的格式来输出时间,比如时间的顺序:年月日时:分:秒。我们如何才能以这种指定的格式来显示日期呢?这就需要利用java.text包中的DateFormat类和SimpleDateFormat类来实现日期的格式化。

(1)利用DateFormat类实现日期的格式化。实例6-20利用DateFromat类实现当前日期的格式化输出。

(2)利用SimpleDateFormat类实现日期的格式化。实例6-22利用SimpleDateFromat类实现当前日期格式化输出。实例6-23将“2014-2-318:30:38”格式的日期字符串转成“2014年02月3日06点30分38秒”的日期形式。

3.获取当前日期的时间通过getTime()方法所得到的Date类型数据是以毫秒来计算的,并且是以1970年1月1日为开始时间。在声明数据类型时需要较大存储空间,可以使用long数据类型或者同等存储类型数据。语句如下:Datedate=newDate();longstr_get=date.getTime();System.out.println("当前毫秒值为:"+str_get);

6.6.2Calendar类Calendar类是一个抽象类,它为特定瞬间与一组诸如

YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。特定瞬间可用毫秒值来表示,它是距离历元(即格林威治标准时间

1970年

1月

1日的

00:00:00.000)的偏移量。

1.Calendar对象的创建由于Calendar类是一个抽象类,不能用new运算符实例化,因此Calendar类提供了getInstance()静态方法返回一个

Calendar对象,其日历字段已由当前日期和时间初始化。

2.Calendar对象的常用方法(1)设置日历字段值(2)获取日历字段值publicintget(intfield)参数field的有效值由Calendar的静态常量指定。(3)更改日历字段值public

void

add(int

field,int

amount);用于给指定的日历字段添加或减去指定的时间量。

(4)将日历对象转变为日期对象的方法publicfinalDategetTime();(5)将时间转变为毫秒值的方法。实例6-24计算出距当前日期时间230天后的日期时间,并用“xxxx年xx月xx日xx小时:xx分:xx秒”的格式输出。实例6-25利用Calendar类实现2011年4月的日历显示。6.7Arrays类Arrays类是JavaAPI中提供的存在于java.util包中的数组工具类,该类中包含有数组操作的一些常用静态方法(如排序和查找),这可以大大简化程序设计人员的设计过程。Arrays类的常用方法有:(1)sort()方法:利用Arrays.sort()实现数组排序。2)binarySearch()方法利用Arrays.binarySearch()方法实现数组元素查找。

(3)equals()方法利用equals()方法实现数组的比较。(4)toString()方法利用toString()方法可以便捷的显示数组的内容。(5)copyoOf()方

温馨提示

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

评论

0/150

提交评论