第六章、Java之API教學(xué)教材_第1頁(yè)
第六章、Java之API教學(xué)教材_第2頁(yè)
第六章、Java之API教學(xué)教材_第3頁(yè)
第六章、Java之API教學(xué)教材_第4頁(yè)
第六章、Java之API教學(xué)教材_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章Java之API第一頁(yè),共39頁(yè)。APIlAPI就是Application Programming Interface,叫做應(yīng)用程序接口。l為什么要有API。l在實(shí)際編程當(dāng)中,需要用到很多方法,比如:設(shè)計(jì)一個(gè)程序來(lái)控制火箭的發(fā)射(神州七號(hào))指揮員可以使用該程序來(lái)使火箭點(diǎn)火升空,使得信號(hào)(xnho)發(fā)送和傳回。指揮員火箭(hujin)發(fā)射程序信號(hào)傳遞(chund)程序信號(hào)傳遞類火箭發(fā)射類一些控制發(fā)射的方法一些控制信號(hào)傳遞的方法第二頁(yè),共39頁(yè)。l在Java中的類庫(kù)里有一些已經(jīng)編寫好并且能直接實(shí)現(xiàn)(shxin)的標(biāo)準(zhǔn)類。l在程序設(shè)計(jì)中可以直接調(diào)用類庫(kù)所提供的類和接口,可以大大提高編程效率。l

2、類庫(kù)里的類和接口大多封裝在特定的包里,每個(gè)包有不同的功能。第三頁(yè),共39頁(yè)。部分(b fen)常用包lJava.applet:提供了創(chuàng)建applet所需的所有類lJava.awt.*:提供創(chuàng)建圖形界面所需的類lJava.beans.*:提供了開發(fā)java beans的類lJava.io:提供了數(shù)據(jù)流等系統(tǒng)的輸入和輸出lJava.lang.*:java的基本類庫(kù)lJava.math.*:提供整數(shù)算術(shù)和十進(jìn)制算術(shù)的基本函數(shù)lJ:提供了實(shí)現(xiàn)網(wǎng)絡(luò)通信應(yīng)用的所有類lJava.util.*:提供了集合、時(shí)間和日期的等常用包lJavax.swing.*:提供用戶界面(yn h ji min)的組件,java

3、用戶界面(yn h ji min)的常用包第四頁(yè),共39頁(yè)。Java.langlJava.lang是java 中使用最廣泛的包,它所包括的類是其他(qt)包的基礎(chǔ),使用時(shí)由系統(tǒng)自動(dòng)引用,不必用import語(yǔ)句進(jìn)行引入。第五頁(yè),共39頁(yè)。一、String與StringBuffer類lString類是字符串類的標(biāo)準(zhǔn)格式,可以把定義的字符串通過(guò)String轉(zhuǎn)換成字符串對(duì)象。String類中有很多構(gòu)造函數(shù)。lString():初始化半含空字符串的String對(duì)象lString(charvalue):使字符串對(duì)象包含char類型數(shù)組的值。lString(charvalue,int offset,int

4、count):傳入一個(gè)字符串型數(shù)組的值給String對(duì)象,從哪里(n li)傳,傳多少個(gè)。l演示String類的定義。l演示String類的多種定義。第六頁(yè),共39頁(yè)。比較(bjio)lString a=“java”;lString b=“java”;lA和b是否代表兩個(gè)(lin )對(duì)象?lString a=new String(“java”);lString b=new String(“java”);lA和b是否代表兩個(gè)(lin )對(duì)象?第七頁(yè),共39頁(yè)。比較(bjio)字符串lS1.equals(s2):如果相等則返回(fnhu)ture。lS1.equalsIgnoreCase(s2):

5、同上,只不過(guò)是忽略大小寫。lSpareTo(s2):如果s1s2則返回(fnhu)大于零的值。l演示比較字符串。第八頁(yè),共39頁(yè)。求字符串長(zhǎng)度(chngd)lString類中的length(方法用來(lái)(yn li)返回字符串的長(zhǎng)度)l演示返回字符串的長(zhǎng)度。第九頁(yè),共39頁(yè)。連接(linji)字符串l用+號(hào)和concat方法可以連接字符串。l例如(lr):用+號(hào)和concat的混合方法把hello,java!這個(gè)字符串打印出來(lái)。l演示連接字符串。第十頁(yè),共39頁(yè)。復(fù)制(fzh)字符串l復(fù)制方法:lS1.copyValueOf(data):將數(shù)組date的內(nèi)容全部復(fù)制到字符串中。lS1.copyVa

6、lueOf(data,int 起始地址,int count):將數(shù)組data以起始地址開始(kish)長(zhǎng)度為count的內(nèi)容復(fù)制到字符串中。lS1.getChar(int 字符起始地址,int 字符終止地址,data,int 數(shù)組起始地址):將s1的內(nèi)容復(fù)制到數(shù)組data中。lData=s1.toCharArray():將s1全部?jī)?nèi)容復(fù)制到字符數(shù)組data中。lS2=s1.substring(int 起始地址,int 結(jié)束位置)l演示復(fù)制字符串。第十一頁(yè),共39頁(yè)。查找(ch zho)字符串l可以(ky)利用函數(shù)來(lái)進(jìn)行查找字符串和子串,并確定它們的位置。lS1.charAt(int index

7、):返回s1中index所對(duì)應(yīng)的字符,index為下標(biāo)號(hào)。lS1.indexOf(int char):返回字符char第一次出現(xiàn)的位置。lS1.lastIndexOf(int char):返回s1中char字符最后一次出現(xiàn)的位置。lS1.indexOf(s2):返回s2在s1中第一次出現(xiàn)的位置。lS1.lastIndexOf(s2):返回s2在s1中最后一次出現(xiàn)的位置。l演示查找字符串。第十二頁(yè),共39頁(yè)。修改(xigi)字符串lS1.replace(oldchar,newchar):用新字符替代舊字符。lS1.toLowerCase():將s1中的所有(suyu)大寫字母轉(zhuǎn)化為小寫字母。lS

8、1.toUpperCase():將s1中所有(suyu)小寫字母轉(zhuǎn)化成大寫字母。l演示:修改字符串。第十三頁(yè),共39頁(yè)。StringBuffer類lStringBuffer與String類相似,但是不同的是StringBuffer可以方便的在緩沖區(qū)被修改,被增加、替換字符,當(dāng)完成字符串的調(diào)整之后,可以把其轉(zhuǎn)換成標(biāo)準(zhǔn)字符串格式。l構(gòu)造函數(shù):lStringBuffer():長(zhǎng)度(chngd)為16個(gè)字符空緩沖字符串lStringBuffer(int length):長(zhǎng)度(chngd)為length的空緩沖字符串。lStringBuffer(String str):構(gòu)造一個(gè)緩沖字符串,內(nèi)容為字符串s

9、tr,再加上16個(gè)字符的空間。第十四頁(yè),共39頁(yè)。lStringBuffer類所產(chǎn)生的對(duì)象里的內(nèi)容可以改變,例如:在程序設(shè)計(jì)中可以不斷的向?qū)ο蟛迦?ch r)字符,直到最后結(jié)果時(shí),則調(diào)用toString()來(lái)轉(zhuǎn)換成String類。l通過(guò)append、insert可以向該對(duì)象中添加字符串。l演示創(chuàng)建StringBuffer對(duì)象。第十五頁(yè),共39頁(yè)。l例:給x賦予(fy)字符串”abc”。lString x=“a”+”b”+”c”;lString x=new StringBuffer().append(“a”).append(“b”).append(“c”).toString();第十六頁(yè),共39

10、頁(yè)。讀取和改變(gibin)StringBuffer中的字符l可以利用方法。lS1.setCharAt(int index,char ch):用ch替代s1中位置為index的字符。lS1.replace(int start,int end,s2):s1中從start開始(含)到end(不含)結(jié)束之前的字符串以s2來(lái)代替(dit)。lS1.delete(int start,int end):刪除從start(含)開始到end(不含)結(jié)束之間的字符串。lS1.delete(int index):刪除s1中index位置的字符l演示改變StringBuffer字符串。第十七頁(yè),共39頁(yè)。Strin

11、g類的程序(chngx)應(yīng)用l設(shè)計(jì)程序,要求可以實(shí)現(xiàn)輸入字符串,假如輸入bye時(shí)則退出程序,輸入其他任何字符串都會(huì)被打印出來(lái)。l(在程序運(yùn)行結(jié)果中進(jìn)行輸入,用回車來(lái)執(zhí)行(zhxng)輸入字符完畢,然后判斷是否為bye)第十八頁(yè),共39頁(yè)。分析(fnx)思路l1、鍵盤輸入的字符存在哪里。l2、接受的鍵盤輸入是一個(gè)字符一個(gè)字符的輸入,那么輸入的字符串又以什么(shn me)樣的形式存儲(chǔ)。l3、程序設(shè)計(jì)的過(guò)程是什么(shn me)?(一個(gè)字符輸完之后,下一步會(huì)進(jìn)行什么(shn me),假如遇到回車后,會(huì)進(jìn)行什么(shn me),不遇到回車又會(huì)進(jìn)行什么(shn me))l4、需要幾個(gè)變量來(lái)接受輸進(jìn)來(lái)的

12、字符。第十九頁(yè),共39頁(yè)。注意(zh y)l1、定義一個(gè)字節(jié)型的數(shù)組可以存儲(chǔ)輸入的字符,但是在判斷字符串內(nèi)容的時(shí)候應(yīng)該將數(shù)組里面所存(su cn)的字符串賦給一個(gè)String類型。l2、接受的是單個(gè)字符的輸入,所以數(shù)組在一個(gè)一個(gè)字符存儲(chǔ)的時(shí)候,不一定要存滿,所以得有一個(gè)變量用來(lái)計(jì)數(shù)數(shù)組到底存到第幾位。l3、最后比較字符串內(nèi)容的時(shí)候,用equals方法(注意用equalsIgnoreCase()可以在比較內(nèi)容的時(shí)侯忽略大小寫)第二十頁(yè),共39頁(yè)。基本數(shù)據(jù)類型的對(duì)象(duxing)包裝類l除了基本數(shù)據(jù)類型(lixng)的類,java還提供了相應(yīng)的包裝類,這樣可以滿足特殊的需要。l例如:類中的很多方

13、法接受的都是Object類型(lixng),這些方法接受的參數(shù)都是對(duì)象類型(lixng),同時(shí)又需要用這些方法來(lái)處理基本數(shù)據(jù)類型(lixng)的數(shù)據(jù),這時(shí)就用到包裝類。第二十一頁(yè),共39頁(yè)。包裝(bozhung)類的種類l8種常用(chn yn)的數(shù)據(jù)類型都有其對(duì)應(yīng)的包裝類:lBoolean BooleanlByte BytelChar Characterlshort Shortlint Integerllong Longlfloat Floatldouble Double第二十二頁(yè),共39頁(yè)。實(shí)際(shj)例子l打印(d yn)出星號(hào)組成的矩形。要求:在運(yùn)行class文件時(shí)輸入?yún)?shù)長(zhǎng)、高就可

14、以設(shè)置打印(d yn)出星號(hào)矩形的長(zhǎng)和高。第二十三頁(yè),共39頁(yè)。思考(sko)l1、在運(yùn)行class時(shí)輸入的參數(shù)到底是字符串類型的還是int類型的。l2、怎樣在運(yùn)行時(shí)輸入的參數(shù)就被轉(zhuǎn)換成int類型的數(shù)據(jù)而參與下面的運(yùn)算。l3、怎么用添加字符串的形式來(lái)打印出星號(hào)(循環(huán)多少次就添加多少回*字符串)用哪個(gè)字符串類來(lái)存儲(chǔ)(cn ch)星號(hào)。l演示運(yùn)行時(shí)設(shè)置寬和高。第二十四頁(yè),共39頁(yè)。集合(jh)類l集合類用來(lái)存儲(chǔ)一組對(duì)象,其中每個(gè)對(duì)象都稱之為元素,里面有Vector類,Enumeration接口,ArrayList類和Iterator接口,Collection等類和接口。l一般在存入一組對(duì)象時(shí)可以用

15、類似Vector類的對(duì)象來(lái)存儲(chǔ)數(shù)據(jù),然后通過(guò)(tnggu)接口Enumeration里面的方法來(lái)對(duì)這組數(shù)據(jù)進(jìn)行處理。第二十五頁(yè),共39頁(yè)。Vector和Enumeration例子(l zi)l將鍵盤中輸入的一個(gè)數(shù)字序列中的每位數(shù)字存儲(chǔ)在Vector對(duì)象中,然后在屏幕中打印出每位數(shù)字相加的結(jié)果。例如輸入:1234,打印出10.l分析:l1、是否需要一個(gè)變量來(lái)存儲(chǔ)鍵盤輸入的每個(gè)字符,然后把這些(zhxi)字符存到Vector對(duì)象中l(wèi)2、怎么把一個(gè)整型的數(shù)據(jù)存到Vector對(duì)象中l(wèi)3、相加的問(wèn)題:這些(zhxi)個(gè)數(shù)字如何累加,加完一個(gè),指針如何指向下一個(gè),而且全部加完后,又怎么樣停止。第二十六頁(yè),

16、共39頁(yè)。l演示:TestVector。l注意:這些類都是外包的,所以(suy)要引用:lImport java.util.*;第二十七頁(yè),共39頁(yè)。Collection接口(ji ku)與Iterator接口(ji ku)lCollection接口的使用方法類似Vector類,可以往里面存儲(chǔ)(cn ch)數(shù)據(jù),可以通過(guò)方法來(lái)取出,通過(guò)方法來(lái)返回一個(gè)Iterator接口對(duì)象,這時(shí)存在里面的數(shù)據(jù)就被給了Iterator對(duì)象,然后通過(guò)方法來(lái)一個(gè)個(gè)取出。lIterator接口類似與Enumeration接口,沒有它那么冗長(zhǎng)的名字。lCollection接口不能直接創(chuàng)建對(duì)象,所以得用實(shí)現(xiàn)了其接口的類來(lái)

17、創(chuàng)建對(duì)象,為ArrayList。第二十八頁(yè),共39頁(yè)。l所以可以(ky)同樣用ArrayList類和Iterator接口可以(ky)同樣處理把數(shù)據(jù)存入并且進(jìn)行處理。l看ArrayList代碼。第二十九頁(yè),共39頁(yè)。lArrayList類同時(shí)實(shí)現(xiàn)了List接口(同樣為集合類接口),由于順序(shnx)關(guān)系,可以對(duì)List接口的對(duì)象進(jìn)行排序。l看List類的排序。第三十頁(yè),共39頁(yè)。Hashtable與Propertiesl在Hashtable對(duì)象中可以動(dòng)態(tài)的存儲(chǔ)一系列對(duì)象,同時(shí)可以對(duì)存儲(chǔ)的每一個(gè)(y )對(duì)象(值)都安排另一個(gè)(y )對(duì)象(關(guān)鍵字)與之相關(guān)聯(lián)。l其中可以通過(guò)對(duì)關(guān)鍵字來(lái)對(duì)值進(jìn)行檢索。

18、l存儲(chǔ)數(shù)據(jù):put(Object key,Object value)l檢索數(shù)據(jù):get(Object key)l演示Hashtable簡(jiǎn)單測(cè)試l可以把值定義成一個(gè)(y )字符串對(duì)象。New String(“value”);第三十一頁(yè),共39頁(yè)。實(shí)際(shj)應(yīng)用l此類實(shí)現(xiàn)一個(gè)哈希表,該哈希表將關(guān)鍵字映射到相應(yīng)的值。任何非 null 對(duì)象都可以用作鍵或值。 l為了成功地在哈希表中存儲(chǔ)和獲取對(duì)象,用作鍵的對(duì)象必須實(shí)現(xiàn) hashCode 方法和 equals 方法。 hashCode方法返回的是一個(gè)由其里面對(duì)象地址轉(zhuǎn)化來(lái)的一個(gè)值。l注意:在Object類中也有equals和hashCode方法。l覆

19、蓋equals方法:因?yàn)楸容^所用(su yn)關(guān)鍵字和Hashtable中存儲(chǔ)的某個(gè)關(guān)鍵字是否相同,假如判斷不出這兩個(gè)關(guān)鍵字對(duì)象是否相同,則不行。l覆蓋hashCode方法:因?yàn)榧词箖?nèi)容相同的兩個(gè)對(duì)象,存儲(chǔ)的地址不一樣,返回的hashCode值也不一樣,所以需要覆蓋。第三十二頁(yè),共39頁(yè)。實(shí)例(shl)l應(yīng)用關(guān)鍵字和值的對(duì)應(yīng)關(guān)系:l假如關(guān)鍵字為一個(gè)對(duì)象,里面有年齡和姓名兩個(gè)變量,假如這兩個(gè)變量都相同,那么就認(rèn)為他是同一個(gè)人,代表是同一個(gè)對(duì)象,這時(shí)就會(huì)返回該關(guān)鍵字所對(duì)應(yīng)的值。l注意:怎么判斷假如在姓名和年齡都相等(xingdng)的前提下,就屬于同一個(gè)對(duì)象,這樣才會(huì)使得關(guān)鍵字是同一個(gè)對(duì)象。第三十

20、三頁(yè),共39頁(yè)。Properties類lProperties類是Hashtable類的子類。l它不但可以具有Hashtable的方法,還增加了將Hashtable對(duì)象中的關(guān)鍵字和值保存到一個(gè)文件(wnjin)中,而且還能從文件(wnjin)中讀取關(guān)鍵字和值到Hashtable對(duì)象中去的方法。l注意:如果要向文件(wnjin)中去存儲(chǔ)Properties對(duì)象中的內(nèi)容,要使用Properties.store方法,這時(shí)每個(gè)屬性的關(guān)鍵字和值都必須是String類型。第三十四頁(yè),共39頁(yè)。實(shí)例(shl)l制作一個(gè)程序,每一次運(yùn)行(ynxng)都能顯示出當(dāng)前運(yùn)行(ynxng)的是第幾次。l準(zhǔn)備:l1、可以定義一個(gè)Properties對(duì)象,里面存儲(chǔ)著關(guān)鍵字和值,每運(yùn)行(ynxng)一次,通過(guò)get方法把那個(gè)值查出來(lái),然后再加一,再把這個(gè)值打印出來(lái),就會(huì)顯示程序運(yùn)行(ynxng)的第幾次。l2、在運(yùn)行(ynxng)時(shí)去讀取存儲(chǔ)著關(guān)鍵字和值的那個(gè)文檔,把里面的值讀出來(lái),看做運(yùn)行(ynxng)了第幾次,當(dāng)運(yùn)行(ynxng)結(jié)束后,再把Properties對(duì)象中的關(guān)鍵字和值再存回到那個(gè)文檔中去(這時(shí)的值已經(jīng)加完1)l3、本程序要注意:在讀取里面的值還有把值存入到里面的時(shí)候要注意類型的轉(zhuǎn)換。還有異常的處理。第三十五頁(yè),共39頁(yè)。

溫馨提示

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

評(píng)論

0/150

提交評(píng)論