版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1,第21章泛型、2,學習目標,泛型的優(yōu)點使用泛型類和接口定義泛型類和接口泛型:提高可靠性和可讀性,泛型方法,泛型消除限制泛型類型向后兼容泛型使用原始類型,泛型限制和設(shè)計和實現(xiàn)限制泛型矩陣類,3,編譯期間出現(xiàn)警告消息,公共類ShowUncheckedWarning公共靜態(tài)void main(字符串參數(shù))Java . util . ArrayList list=new Java . util . ArrayList();列表。添加(Java編程);要理解這一行的編譯警告,您需要了解JDK 1.5中的泛型。4,排除警告,公共類顯示未檢查的公共靜態(tài)void main(字符串參數(shù))Java . uti
2、l . ArrayList=new Java . util . ArrayList();列表。添加(Java編程);這一行沒有警告消息。5,簡介,泛型是指參數(shù)化類型的能力。有了這種能力,您可以用泛型類型定義類或方法,然后編譯器會用具體類型替換它們。例如,定義一個存儲泛型元素的泛型堆棧類。從這個泛型類中,您可以生成包含字符串或數(shù)字的堆棧對象。此時,字符串和數(shù)字是替代泛型的具體類型。6,為什么使用泛型?使用泛型的主要優(yōu)點是可以在編譯時而不是運行時檢測到錯誤。泛型類或方法允許用戶指定可以使用這些類或方法的對象類型。如果您試圖使用不兼容的對象,編譯器將檢測到錯誤。7、泛型類型、當泛型被實例化時,在運行
3、時報告錯誤,在編譯時報告錯誤、提高可靠性、8、泛型類ArrayList前后8、JDK 1.5、9、有泛型,無需強制轉(zhuǎn)換,ArrayList=新ArrayList();list . add(5.5);/5.5自動轉(zhuǎn)換為新的雙(5.5)列表。添加(3.0);/3.0自動轉(zhuǎn)換為新的雙(3.0)雙雙對象=列表。獲取(0);/不需要轉(zhuǎn)換雙d=list . get(1);/自動轉(zhuǎn)換為double,10,定義泛型類和接口,GenericStack,11,泛型方法,公共靜態(tài)無效打印(elist)為(int I=0;I .清單.長度;系統(tǒng)輸出打印(列表);system . out . println();公共靜
4、態(tài)無效打印(對象列表)(整數(shù)=0;I .清單.長度;系統(tǒng)輸出打印(列表);system . out . println();12,受限泛型類,公共靜態(tài)void main (string args)矩形=新矩形(2,2);圓環(huán)9=新圓環(huán)9(2);系統(tǒng)輸出打印輸入(同一區(qū)域?相等區(qū)域(矩形、圓形);公共靜態(tài)布爾等式區(qū)域(對象1,對象2)返回對象1.getArea()=對象2 . GetArea();13、原語類型和向后兼容性。/基元類型數(shù)組列表=新數(shù)組列表();相當于數(shù)組列表=新數(shù)組列表();14,原始類型:不安全,最大最大(歡迎,23);/Max.java:查找最大對象公共類Max /*返回兩個
5、對象之間的最大值*/公共靜態(tài)可比最大值(可比o1,可比o2),如果(pareTo(o2) 0)返回O1;否則返回O2;運行時錯誤,15,已更改為安全,Max1.max(歡迎,23);/Max1.java:查找最大對象公共類Max1 /*返回兩個對象之間的最大值*/公共靜態(tài)E最大值(E o1,E o2)如果(pareTo(o2) 0)返回O1;否則返回O2;16,通用,通用,通配符1,使用通配符的必要性,無限通配符?擴展通配符上限?超T下限通配符,通配符Demo2,通配符Demo3,17,泛型類型和通配符類型,18,避免不安全的原始類型,并用新數(shù)組列表()替換新數(shù)組列表();泛型的擦除和限制,泛
6、型是通過泛型擦除機制實現(xiàn)的。編譯器在編譯代碼時使用泛型類型信息,但會立即將其刪除。因此,通用信息在運行時不再可用。此方法可以使泛型代碼與使用原始類型的遺留代碼向后兼容。20.編譯時檢查。例如,編譯器將檢查(a)中的代碼是否正確使用了泛型,如果正確使用了泛型,則將它翻譯成與(b)相同的等效代碼,以便在運行時使用。(b)中的代碼使用原始類型。21,請注意,不管實際的類型是什么,泛型都被它的所有實例所共享。通用堆棧1=新通用堆棧();GenericStack stack2=新的GenericStack();雖然泛型標簽和泛型標簽是兩種類型,但是在運行時只有一個泛型標簽類被加載到JVM中。22.對泛型的限制,1 .無法創(chuàng)建實例,即使用泛型類型參數(shù),2。無法創(chuàng)建數(shù)組,即使用泛型類型參數(shù)。新的E100限制3:靜態(tài)環(huán)境中不允許類的參數(shù)是泛型。限制4:異常類不能是泛型,23。設(shè)計:GenericMatrix類。目標:用泛型設(shè)計一個對矩陣進行運算的類,實現(xiàn)所有類型矩陣的矩陣加法和矩陣乘法運算。通用矩陣,24,UML圖,25。目標:使用
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026春招:揚子江藥業(yè)題庫及答案
- 2026年橋梁工程市場與智能城市建設(shè)的關(guān)系
- 2026春招:信達資產(chǎn)試題及答案
- 賀新郎劉克莊課件
- 2026春招:濰柴動力題庫及答案
- 醫(yī)療保險支付方式改革
- 2026年海南體育職業(yè)技術(shù)學院單招職業(yè)技能筆試備考題庫帶答案解析
- 兒科護理工作要點及實踐案例
- 醫(yī)療人工智能在醫(yī)療影像診斷中的應用
- 醫(yī)療檢驗質(zhì)量管理規(guī)范與禮儀
- 2026年生物醫(yī)藥創(chuàng)新金融項目商業(yè)計劃書
- 井下爆破安全培訓課件
- 2026年安全員證考試試題及答案
- 空氣源熱泵供熱工程施工方案
- 合伙車輛分車協(xié)議書
- 中國馬克思主義與當代2024版教材課后思考題答案
- 2026年日歷表(每月一頁、可編輯、可備注)
- 電力工程課程設(shè)計-某機床廠變電所設(shè)計
- Unit 2 Reading and Thinking教學課件(英語選擇性必修第一冊人教版)
- 兒童常用補液
- 期貨基礎(chǔ)知識(期貨入門)
評論
0/150
提交評論