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

下載本文檔

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

文檔簡介

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

2、類庫里的類和接口大多封裝在特定的包里,每個包有不同的功能。第三頁,共39頁。部分(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的基本類庫lJava.math.*:提供整數(shù)算術(shù)和十進(jìn)制算術(shù)的基本函數(shù)lJ:提供了實現(xiàn)網(wǎng)絡(luò)通信應(yīng)用的所有類lJava.util.*:提供了集合、時間和日期的等常用包lJavax.swing.*:提供用戶界面(yn h ji min)的組件,java

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

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

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

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

7、):返回s1中index所對應(yīng)的字符,index為下標(biā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演示查找字符串。第十二頁,共39頁。修改(xigi)字符串lS1.replace(oldchar,newchar):用新字符替代舊字符。lS1.toLowerCase():將s1中的所有(suyu)大寫字母轉(zhuǎn)化為小寫字母。lS

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論