泛型基本知識_第1頁
泛型基本知識_第2頁
泛型基本知識_第3頁
泛型基本知識_第4頁
泛型基本知識_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)(javajava版版) 北京信息科技大學(xué)北京信息科技大學(xué) 計算機(jī)學(xué)院計算機(jī)學(xué)院 段瑞雪段瑞雪12泛型31 public class generictest 2 public static void main(string args) 3 list list = new arraylist(); 4 list.add(qqyumidi); 5 list.add(corn); 6 list.add(100); 7 8 for (int i = 0; i list.size(); i+) 9 string name = (string) list.get(i); / 110 sys

2、tem.out.println(name: + name);11 12 13 http:/ 一般用t表示。451 public class generictest2 2 3 public static void main(string args) 4 /* 5 list list = new arraylist(); 6 list.add(qqyumidi); 7 list.add(corn); 8 list.add(100); 9 */10 11 list list = new arraylist();12 list.add(qqyumidi);13 list.add(corn);14 /l

3、ist.add(100); / 1 提示編譯錯誤15 16 for (int i = 0; i list.size(); i+) 17 string name = list.get(i); / 218 system.out.println(name: + name);19 20 21 public class list boolean add(t key); t get(t key); t set(t key);.6自定義泛型接口、泛型類和泛型方法自定義泛型接口、泛型類和泛型方法7public class box private int t; public void set(int t) th

4、is.t = t; public int get() return t; 8public class box private float t; public void set(float t) this.t = t; public float get() return t; 9public class box private t t; public void set(t t) this.t = t; public t get() return t; 泛型類10public class box private t t; public void set(t t) this.t = t; publi

5、c t get() return t; public static void main(string args) box integerbox = new box(); box stringbox = new box(); integerbox.set(new integer(10); stringbox.set(new string(菜鳥教程菜鳥教程); system.out.printf(整型值為整型值為 :%dnn, integerbox.get(); system.out.printf(字符串為字符串為 :%sn, stringbox.get(); 為什么引入泛型的概念? 1. 類型檢

6、查。 2. 節(jié)省空間,一個泛型類,可以處理各種數(shù)據(jù)類型的數(shù)據(jù)。 1112adt set數(shù)據(jù):集合中的數(shù)據(jù)元素,數(shù)據(jù)元素的數(shù)據(jù)類型為t操作boolean isempty();int size();t search(t key);boolean contains(t key);boolean add(t x);t remove(t key);void clear();boolean containsall(setset);boolean addall(setset);13接口14聲明一個接口(最簡單的情況)15接口的實際應(yīng)用16interface usb / 操作標(biāo)準(zhǔn)操作標(biāo)準(zhǔn) public voi

7、d install() ; public void work() ;class computer public void plugin(usb usb) usb.install() ; usb.work() ; class phone implements usb public void install() system.out.println(安裝手機(jī)驅(qū)動程序安裝手機(jī)驅(qū)動程序。) ; public void work() system.out.println(手機(jī)與電腦進(jìn)行工作手機(jī)與電腦進(jìn)行工作。) ; class printer implements usb public void ins

8、tall() system.out.println(安裝打印機(jī)驅(qū)動程序安裝打印機(jī)驅(qū)動程序。) ; public void work() system.out.println(進(jìn)行文件打印進(jìn)行文件打印。) ; class mp3 implements usb public void install() system.out.println(安裝安裝mp3驅(qū)動程序。驅(qū)動程序。) ; public void work() system.out.println(進(jìn)行進(jìn)行mp3拷貝。拷貝。) ; public class testdemo public static void main(string a

9、rgs) computer c = new computer() ; c.plugin(new phone() ; c.plugin(new printer() ; c.plugin(new mp3(); 為什么要引入接口的概念? 1. 減少重復(fù)定義。 2. 便于利用基類引用,處理各種類型的子類,實現(xiàn)多態(tài)。1718接口和泛型19public interface set 泛型接口泛型接口public class sortset implements setset set = new sortset();set.add(x)泛型通配符t 是類型參數(shù),指定元素的數(shù)據(jù)類型,t的實際參數(shù)類型是類,在聲明

10、和創(chuàng)建對象時指定。 “?” 是泛型通配符, “?extends t” 是指t及其任意一個子類。 “? super t” 是指t及其任意一個父類。2021泛型中占位符泛型中占位符 t和和 ?有什么區(qū)別有什么區(qū)別?https:/ class teacher public string str; public int age; public int sex; public teacher(string str, int age,int sex) this.str = str; this.age = age; this.sex = sex; public class student extends t

11、eacher public student(string str, int age,int sex) super(str,age,sex); public class child extends student public child(string str, int age,int sex) super(str,age,sex); teacherstudentchild23public static void test() arraylist list1 = new arraylist(); list1.add(new student(zhangsan,18,0); list1.add(ne

12、w student(lisi,28,0); list1.add(new student(wangwu,24,1); /這里如果add(new teacher(.);就會報錯, show1(list1); /這里我們并沒有給list指定具體的數(shù)據(jù)類型, /可以存放多種類型數(shù)據(jù) public static void show1(list list) for (object object : list) system.out.println(object.tostring(); 24public static void test2()/這里我們并沒有給list指定具體的數(shù)據(jù)類型, /可以存放多種類型

13、數(shù)據(jù) arraylist list2 = new arraylist(); list2.add(new student(zhaoliu,22,1); list2.add(new teacher(sunba,30,0); show2(list2); public static void show2(list list) for (object object : list) system.out.println(object); 25public static void test3() arraylist list3 = new arraylist(); list3.add(new teacher

14、(zhaoliu,22,1); list3.add(new teacher(sunba,30,0); show3(list3); /這里我們并沒有給list指定具體的數(shù)據(jù)類型, /可以存放多種類型數(shù)據(jù) public static void show3(list list) for (object object : list) system.out.println(object); 26public static void test3() /這里我們并沒有給list指定具體的數(shù)據(jù)類型, /可以存放多種類型數(shù)據(jù) arraylist list4 = new arraylist(); list4.ad

15、d(new student(sunba,30,0); list4.add(new teacher(zhaoliu,22,1); show4(list4); public static void show4(list list) for (object object : list) system.out.println(object); 27public static void test3() arraylist list5 = new arraylist(); list5.add(new child(zhangsan, 15,1); list5.add(new child(sunba,30,0); list5.add(new child(zhaoliu,22,1); show3(list5); arraylist list6 = new arraylist(); list6.add(new child(zhangsan,15,1); list6.add(new student(

溫馨提示

  • 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

提交評論