第6章 Java常用實用類_第1頁
第6章 Java常用實用類_第2頁
第6章 Java常用實用類_第3頁
第6章 Java常用實用類_第4頁
第6章 Java常用實用類_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

6.1JavaAPI簡介6.2Object類6.3字符串處理類6.4基本數(shù)據(jù)類型包裝類6.5Math類和Random類6.6日期處理類6.7Arrays類6.8Class類6.9案例分析與實現(xiàn)(續(xù)3)第6章Java常用實用類本章教學內(nèi)容:本章教學目標:理解JavaAPI的概念了解Object類掌握String類、StringBuffer類和StringTokenizer類的用法掌握基本數(shù)據(jù)類型封裝類的用法掌握Math類和Random類的用法掌握Date類和Calendar類的用法掌握Arrays類的用法了解Class類的用法6.1JavaAPI簡介API就是應用程序編程接口,是一些已寫好、可供直接調(diào)用的類庫。JavaAPI包含的內(nèi)容很多,本章主要討論其中兩個最基本的包中的主要類:(1)語言包(java.lang)。是Java的核心類庫,包含了運行Java程序必不可少的系統(tǒng)類,是Java語言編程使用最頻繁的包。為了簡化編程,系統(tǒng)默認導入了java.lang包,所以使用java.lang包中的類時可以不用import語句導入。(2)實用程序包(java.util)。在這個包中,Java提供了一些實用的方法和數(shù)據(jù)結(jié)構(gòu)。6.2Object類Object類是所有類的父類。在Java體系中,所有類都是直接或間接的繼承了Object類。如果一個類沒有使用extends關(guān)鍵字明確標識繼承另外一個類,那么這個類就默認繼承Object類。因此,Object類是Java類層中的最高層類,是所有類的超類。換句話說,Java中任何一個類都是它的子類。1.toString()方法Object類中定義了publicStringtoString()方法,其返回值是String類型,描述當前對象的有關(guān)信息。在進行String與其他類型數(shù)據(jù)(引用類型)的連接操作時或打印對象時,將自動調(diào)用該對象的toString()方法。實例6-1重新定義Employee類,并重寫其toString()方法。默認情況下toString()方法返回的字符串格式是“類名@哈希碼”,一般情況下需要重寫toString()方法。

2.equals(Objectobj)方法equals(Objectobj)方法與Java運算符"=="的含義相同,但用法不同。當兩個值比較、對象或變量與值比較、兩個變量比較時,使用運算符"==";當比較兩個對象時,使用equals()方法。該方法調(diào)用返回true時表示兩個對象相等(或稱相同),返回false時表示兩個對象不相等。實例6-2編程演示“equals()方法“和“==”運算符比較對象時的異同。

3.getClass()方法getClass()方法返回調(diào)用該方法的對象所屬的類。實例6-3編程演示getClass()方法的使用。6.3字符串處理類6.3.1String類java.lang包中String類代表字符串。Java程序中的所有字符串字面值(”abc”)都作為此類的實例來實現(xiàn)。字符串是常量,它們的值在創(chuàng)建之后不能改變,因此String對象是不可改變的。String類主要用于比較兩個字符串、查找和抽取串中的字符或子串、字符串與其它類型之間的相互轉(zhuǎn)換等操作,操作的結(jié)果通常得到一個新字符串,但不會改變源串的內(nèi)容。String類常用構(gòu)造方法String類常用構(gòu)造方法見表6-2。表6-2String類常用構(gòu)造方法1.String類常用構(gòu)造方法構(gòu)造方法說

明String()初始化一個新的String對象,使其包含一個空字符串String(Stringvalue)初始化一個新的String對象,使其包含和參數(shù)字符串相同的字符序列String(char[]value)分配一個新的String對象,使它代表字符數(shù)組參數(shù)包含的字符序列String(char[]value,intoffset,intcount)分配一個新的String對象,使它包含來自字符數(shù)組參數(shù)中子數(shù)組的字符String(byte[]value)分配一個新的String對象,使它代表字節(jié)數(shù)組參數(shù)包含的字符序列String(StringBufferbuffer)初始化一個新的String對象,它包含字符串緩沖區(qū)參數(shù)中的字符序列2.String類常用方法實例6-4length()方法的使用:求指定字符串的長度。實例6-5==運算符與equals()方法的使用。實例6-6使用+運算符和concat()方法實現(xiàn)字符串的連接。實例6-7在字符串中查找字符和子串。

6.3.2StringBuffer類StringBuffer類用于內(nèi)容可以改變的字符串,可以將其它各種類型的數(shù)據(jù)增加、插入到字符串中,也可以轉(zhuǎn)置字符串中原來的內(nèi)容。Java為字符串提供了特別的連接操作符(+),可以把其它各種類型的數(shù)據(jù)轉(zhuǎn)換成字符串,并前后連接成新的字符串。實際上連接操作符(+)的功能是通過

StringBuffer類和它的

append方法實現(xiàn)的。

2.StringBuffer類的常用方法常用方法說明StringBufferappend(Objectobj)將某個對象的串描述添加到StringBuffer尾部。StringBufferinsert(intposition,Objectobj)將某個對象的串描述插入到StringBuffer中的某個位置。StringBufferinsert(intindex,char[]str,intoffset,intlen)將字符數(shù)組str中從offset位置開始的len個字符插入到串的index位置。StringBuffersetCharAt(intposition,charch)用新字符替換指定位置字符。StringBufferdeleteCharAt(intposition)刪除指定位置的字符。StringBufferreplace(intstart,intend,Stringstr)將參數(shù)指定范圍的一個子串用新串替換。Stringsubstring(intstart,intend)獲取所指定范圍的子串。實例6-8改變字符串的內(nèi)容。實例6-9將一個字符串反轉(zhuǎn)。

6.3.3StringTokenizer類在實際應用中,有時需要分析字符串并將字符串分解成可被獨立使用的單詞,這些單詞叫做語言符號。例如:對于字符串“WeareStudents”,如果把空格作為分隔符,那么該字符串有三個單詞(語言符號)。而對于字符串"We,are,Students",如果把逗號作為分隔符,那么該字符串也有三個單詞。當分析一個字符串并將該字符串分解成可被獨立使用的單詞時,可以使用java.util包中的StringTokenizer類。

1.StringTokenizer類常用的構(gòu)造方法

(1)StringTokenizer(Strings):為字符串s構(gòu)造一個分析器.使用默認的分隔符集合,即空格符(若干個空格被看成一個空格)、換行符、回車符、Tab符等。

(2)StringTokenizer(Strings,Stringdelim):為字符串s構(gòu)造一個分析器,參數(shù)dilim中的字符被作為分隔符。

2.StringTokenizer類常用的方法nextToken()方法hasMoreTokens()方法countTokens()方法實例6-10分析給定字符串,分別輸出字符串的單詞,并統(tǒng)計出單詞個數(shù)。6.4基本數(shù)據(jù)類型包裝類在Java中,基本數(shù)據(jù)類型不作為對象使用。這樣做的原因時效率問題,因為處理對象需要額外的系統(tǒng)開銷。然而許多Java的方法需要對象作參數(shù),這時Java在java.lang包中提供了一個方便的辦法:將基本數(shù)據(jù)類型包裝成對應的包裝類。Java中的基本數(shù)據(jù)類型共有八種,那么與之相對應的包裝類也同樣是有八種。

1.包裝類的構(gòu)造方法可以從基本的數(shù)據(jù)類型或從表示數(shù)值的字符串來構(gòu)造數(shù)值包裝對象。以Integer類為例。Integer類的構(gòu)造方法如下:publicInteger(intvalue)publicInteger(Strings)

2.數(shù)值類的常量每個數(shù)值包裝類都有常量MAX_VALUE和MIN_VALUE。MAX_VALUE表示對應基本類型的最大值;MIN_VALUE表示對應基本類型的最小值。3.類型轉(zhuǎn)換方法每個包裝類均提供有相應的方法用來從包裝對象中抽取相應的數(shù)據(jù)。Boolean類的對象,可以調(diào)用booleanValue()方法從包裝對象中抽取相應的數(shù)據(jù)。

Integer類的對象,可以調(diào)用intValue()方法從包裝對象中抽取相應的數(shù)據(jù)。Character的對象,可以用charValue()方法從包裝對象中抽取相應的數(shù)據(jù)。

4.包裝類提供的各種static方法Character類提供有isDigit(charch)方法可判斷一個字符是否為數(shù)字。

除Character類外的所有包裝類均提供有valueOf(Strings)的靜態(tài)方法,它將得到一個相應類型的對象。還有一組非常有用的靜態(tài)包裝方法是parseXXX()方法,可以將“數(shù)字”格式的字符串轉(zhuǎn)化為相應的基本數(shù)據(jù)類型。

5.使用Long類的下述方法可以得到整數(shù)的各種進制的字符串表示publicstaticStringtoBinaryString(longn)publicstaticStringtoOctalString(longn)publicstaticStringtoHexString(longn)publicstaticStringtoString(longn,intp)

6.使用String類的valueOf()方法可以將數(shù)值轉(zhuǎn)化為相應的字符串publicstaticStringvalueOf(byten)publicstaticStringvalueOf(intn)publicstaticStringvalueOf(longn)publicstaticStringvalueOf(floatn)publicstaticStringvalueOf(doublen)實例6-11

將數(shù)字字符串轉(zhuǎn)化為對應的整數(shù)。實例6-12將整型數(shù)據(jù)包裝成Integer類的對象,再將其轉(zhuǎn)換為基本數(shù)據(jù)類型。實例6-13基本數(shù)據(jù)類型與包裝類對象運算操作。6.5Math類和Random類6.5.1Math類Java.lang包中的Math類也稱數(shù)學類,是一個工具類,它在解決與數(shù)學計算有關(guān)的一些問題時有著很重要的作用。Math類包含了一組基本的數(shù)學運算的方法和常數(shù)。如求絕對值的abs()方法,計算三角函數(shù)的sin()方法和cos()方法,求兩個數(shù)中的較小值和較大值的min()方法和max()方法,求隨機數(shù)的random()方法等。Math類是最終類(final),不能從Math類中派生其他的新類。因此只能使用Math類的方法而不能對其作任何修改.實例6-14Math類中主要方法應用舉例。實例6-15隨機產(chǎn)生10個100以內(nèi)的正整數(shù)并輸出。

6.5.2Random類

Java.util包中的Random類是一個隨機數(shù)產(chǎn)生器,此類的實例用于生成偽隨機數(shù)流。隨機數(shù)是按照某種算法產(chǎn)生的,一旦用一個初值創(chuàng)建

Random對象,就可以得到一系列的隨機數(shù),但如果用相同的初值創(chuàng)建Random對象,得到的隨機數(shù)序列是相同的,也就是說,在程序中看到的“隨機數(shù)”是固定的那些數(shù),起不到“隨機”的作用,針對這個問題,Java設計者們在

Random類的

Random()構(gòu)造方法中使用當前的時間來初始化

Random對象,因為沒有任何時刻的時間是相同的,所以就可以減少隨機數(shù)序列相同的可能性。

1.Random類構(gòu)造方法Random類提供了兩個構(gòu)造方法:帶參數(shù)(即帶種子)和不帶參數(shù)(即不帶種子)。如果沒有提供參數(shù),Random實例的參數(shù)將是當前時間的毫秒數(shù)。2.Random類的常用方法(1)intnextInt():返回下一個偽隨機數(shù),它是此隨機數(shù)生成器的序列中均勻分布的

int值。(2)intnextInt(intn):返回一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在

0(包括)和指定值(不包括)之間均勻分布的

int值。(3)longnextLong():返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的

long值。

(4)doublenextDouble():返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在

0.0和

1.0之間均勻分布的

double值。(5)floatnextFloat():返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在

0.0和

1.0之間均勻分布的

float值。(6)booleannextBoolean():返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的

boolean值。(7)voidnextBytes(byte[]bytes)::生成隨機字節(jié)并將其置于用戶提供的字節(jié)數(shù)組中。實例6-16利用不帶參數(shù)的構(gòu)造方法創(chuàng)建兩個隨機數(shù)生成器對象,分別隨機產(chǎn)生一個整數(shù)、一個實數(shù)、一個布爾值并輸出。實例6-17利用帶參數(shù)的構(gòu)造方法創(chuàng)建兩個隨機數(shù)生成器對象,分別隨機產(chǎn)生一個整數(shù)、一個實數(shù)、一個布爾值并輸出。實例6-18隨機產(chǎn)生10個100以內(nèi)的整數(shù)并輸出。6.6日期處理類6.6.1Date類java.util包中的Date類表示特定的瞬間,精確到毫秒。使用Date類的無參構(gòu)造方法Date()創(chuàng)建的Date對象可以獲取本地當前時間。Date對象表示時間的默認順序是:星期、月、日、小時、分、秒、年。

1.Date類的構(gòu)造方法

(1)無參構(gòu)造方法例如:使用系統(tǒng)的當前日期和時間創(chuàng)建一個日期對象。語句如下:Datedate=newDate();System.out.println("當前日期為:"+date);實例6-19使用系統(tǒng)的當前日期和時間創(chuàng)建一個日期對象并返回一個長整數(shù)。

(2)有參構(gòu)造方法例如:通過有參構(gòu)造方法獲取當前系統(tǒng)時間。語句如下:longct=System.currentTimeMillis();Dated=newDate(ct);實例6-19使用有參構(gòu)造方法創(chuàng)建一個日期對象。

2.日期的格式化在編寫程序時,通常都希望按照某種習慣的格式來輸出時間,比如時間的順序:年月日時:分:秒。我們?nèi)绾尾拍芤赃@種指定的格式來顯示日期呢?這就需要利用java.text包中的DateFormat類和SimpleDateFormat類來實現(xiàn)日期的格式化。

(1)利用DateFormat類實現(xiàn)日期的格式化。實例6-20利用DateFromat類實現(xiàn)當前日期的格式化輸出。

(2)利用SimpleDateFormat類實現(xiàn)日期的格式化。實例6-22利用SimpleDateFromat類實現(xiàn)當前日期格式化輸出。實例6-23將“2014-2-318:30:38”格式的日期字符串轉(zhuǎn)成“2014年02月3日06點30分38秒”的日期形式。

3.獲取當前日期的時間通過getTime()方法所得到的Date類型數(shù)據(jù)是以毫秒來計算的,并且是以1970年1月1日為開始時間。在聲明數(shù)據(jù)類型時需要較大存儲空間,可以使用long數(shù)據(jù)類型或者同等存儲類型數(shù)據(jù)。語句如下:Datedate=newDate();longstr_get=date.getTime();System.out.println("當前毫秒值為:"+str_get);

6.6.2Calendar類Calendar類是一個抽象類,它為特定瞬間與一組諸如

YEAR、MONTH、DAY_OF_MONTH、HOUR等日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。特定瞬間可用毫秒值來表示,它是距離歷元(即格林威治標準時間

1970年

1月

1日的

00:00:00.000)的偏移量。

1.Calendar對象的創(chuàng)建由于Calendar類是一個抽象類,不能用new運算符實例化,因此Calendar類提供了getInstance()靜態(tài)方法返回一個

Calendar對象,其日歷字段已由當前日期和時間初始化。

2.Calendar對象的常用方法(1)設置日歷字段值(2)獲取日歷字段值publicintget(intfield)參數(shù)field的有效值由Calendar的靜態(tài)常量指定。(3)更改日歷字段值public

void

add(int

field,int

amount);用于給指定的日歷字段添加或減去指定的時間量。

(4)將日歷對象轉(zhuǎn)變?yōu)槿掌趯ο蟮姆椒╬ublicfinalDategetTime();(5)將時間轉(zhuǎn)變?yōu)楹撩胫档姆椒?。實?-24計算出距當前日期時間230天后的日期時間,并用“xxxx年xx月xx日xx小時:xx分:xx秒”的格式輸出。實例6-25利用Calendar類實現(xiàn)2011年4月的日歷顯示。6.7Arrays類Arrays類是JavaAPI中提供的存在于java.util包中的數(shù)組工具類,該類中包含有數(shù)組操作的一些常用靜態(tài)方法(如排序和查找),這可以大大簡化程序設計人員的設計過程。Arrays類的常用方法有:(1)sort()方法:利用Arrays.sort()實現(xiàn)數(shù)組排序。2)binarySearch()方法利用Arrays.binarySearch()方法實現(xiàn)數(shù)組元素查找。

(3)equals()方法利用equals()方法實現(xiàn)數(shù)組的比較。(4)toString()方法利用toString()方法可以便捷的顯示數(shù)組的內(nèi)容。(5)copyoOf()方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論