《Java程序設(shè)計(jì)及應(yīng)用》課件04_第1頁
《Java程序設(shè)計(jì)及應(yīng)用》課件04_第2頁
《Java程序設(shè)計(jì)及應(yīng)用》課件04_第3頁
《Java程序設(shè)計(jì)及應(yīng)用》課件04_第4頁
《Java程序設(shè)計(jì)及應(yīng)用》課件04_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

內(nèi)容提要為什么要引入泛型定義簡單的泛型泛型和子類繼承泛型的通配符泛型方法和類型推斷為什么要引入泛型從JDK1.5開始引入了Generics(泛型)。這是因?yàn)樵趯?shí)例對象作向下類型強(qiáng)制轉(zhuǎn)換時(shí),存在潛在的類型不匹配的問題。尤其在使用集合(詳見第8章)對象時(shí),更是如此。為了解決這樣的問題,Java引入了泛型。簡言之,引入泛型是為了提高代碼的安全性和編程的簡單性。定義簡單的泛型泛型,就是把引用類型進(jìn)行參數(shù)化,注意是引用類型,不是基本類型。在定義一個(gè)泛型類的時(shí)候,在“<>”之間定義泛型參數(shù)。例程泛型參數(shù)不能用于使用static修飾的成員變量、成員方法。這是因?yàn)榉盒蛥?shù)是屬于動(dòng)態(tài)的,與static不相容。泛型和子類繼承如果Foo是Bar的一個(gè)子類型(子類或者子接口),而G是某種泛型聲明,那么G<Foo>是G<Bar>的子類型并不成立。泛型參數(shù)可以繼承其他的類和接口,如果有多個(gè)接口或類可以用&符號連接(包括三種情況:多個(gè)純接口、多個(gè)純類、多個(gè)接口和類混合),&是“和”、“并且”的意思。通過extends限制了泛型參數(shù)的范圍。注意:這里泛型的extends與Java接口或類的extends不是一個(gè)概念,泛型中的extends的含義是左邊的操作數(shù)或者是右邊的類型或是右邊的子孫類型,即右邊的類型是左邊類型的上界。泛型的通配符List<?extendsNumber>表示類型變量是Number或者Number的子類。這個(gè)就是所謂的上界通配符,同樣,如果要表示類型變量是Number或者Number的super類型,可以使用下界通配符:List<?superNumber>通配符List<?>等價(jià)于:List<?extendsObject>通配符只能用于成員變量、局部變量、參數(shù)類型和返回類型,不能用于命名類和接口。泛型方法和類型推斷泛型方法就是把方法的參數(shù)或返回值的類型進(jìn)行參數(shù)化,聲明一個(gè)泛型方法的方式如下:修飾符<T>Tfunc(Tobj){

returnobj;

}

修飾符<TextendsA>Tmethod(Tobj){

returnobj;

}小結(jié)泛型給實(shí)際編程帶來了簡便,泛型的類型參數(shù)只能是引用類型,不能是基本類型。本章從定義簡單的泛型、

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論