JAVA高新技術 泛型篇

2021-05-27 22:32:12 字數 2052 閱讀 4060

1、泛型的意義:

往小處說,是為了實現型別安全的集合

往大處說,是為了實現模版程式設計的理念

2、為什麼要出現泛型:

雖然集合具有長度可擴充、插入刪除方便等強大的特性

但是集合內部可以儲存的物件是型別不安全的

釋義:什麼是型別不安全:

因為集合內部可以裝入/取出的元素是object型別

因此任何物件都能夠往裡裝

這時若想要從集合中取得乙個string物件時

則必須要在取出後將其強制轉換成string型別

但是如果取出的物件並非string型別的物件

則強制轉換就會發生錯誤,這就是型別不安全

因此採用泛型是為了實現型別安全,同時提高程式的可讀性

3、泛型的含義:

簡單地理解,泛型的含義就是,在定義集合的時候,就指定集合內部可以裝入物件的型別。

這樣該集合內就只能裝入該種型別的物件,同時取出的物件也是該種型別的,而不再是object。

定義的格式是:

list list = new arraylist ();

這樣list.add("abc");是合法的,list.add(123);就是非法的

同時string s = list.get(0);是合法的,而不需要再次進行強制型別轉換

/*********以下內容為擴充套件知識*********/

4、不同泛型的集合不能夠相互賦值:

只有泛型相同的集合之間才能夠相互賦值

不支援泛型為子類的集合賦值給泛型為父類的集合

例如:public void print(list list)

}list list1 = new arraylist ();

list list2 = new arraylist ();

print(list1);  //非法

print(list2);  //合法

5、萬用字元"?"

以上問題的解決方法是:

public void print(list <?> list)

}list list1 = new arraylist ();

list list2 = new arraylist ();

print(list1)  //合法

print(list2)  //合法

*?是泛型的萬用字元,可以代表任意乙個泛型

*也可以限制?可以代表泛型的泛圍,語法是:

<? extends string>              //限制該泛型只能是string或string的子類

<? extends comparable>  //限制該泛型只能是comparable的實現類(注意這裡用的也是extends)

<? super number>              //限制該泛型只能是number或number的父類

6、定義泛型方法:

格式:在方法的返回值前面加上,可以使方法稱為泛型方法(模版)

作用:用於統一方法內部的引數型別,t的型別由呼叫該方法時的引數決定

例子:public class testgenerics3

}public static void main(string args)

}7、定義泛型類:

格式:在類名後面加上,可以使該類稱為泛型類

作用:用於動態決定類內部的方法引數型別和返回值型別

例子://定義乙個介面,定義介面的泛型為t

//那麼,該介面的實現類指定t的具體型別是什麼,t的型別就是什麼

inte***ce i

//指定介面i內的t為string型別

class ic1 implements i

}//指定介面i內t為collection型別

class ic2 implements i }

JAVA高新技術 列舉篇

1 為什麼要出現列舉 在現實生活中,有許多實體有且僅有特定的幾個屬性 例如 月份只有1 12月,性別只有男女,季節只有四季 等 若將其型別定義成常量,則不可避免地出現非法引數的問題 例如 13月,第三個性別,第五個季節 等 因此,對於上述型別的物件,必須規定其特定的屬性值為列舉型別,即 僅能從已有的...

Java高新技術 列舉

說明 當乙個類的物件個數固定,且不需要再建立這個類新的物件時,可以考慮用列舉。一,列舉原理 列舉型別特有 1.私有構造方法 2.每個元素分別用乙個公有的靜態成員變數表示 3.可以有若干個公有方法或抽象方法,抽象方法可以使每個元素 本類物件 通過覆蓋具有自己獨特的內容 注 列舉型別的元素就是本類物件,...

高新的技術對不對 有關高新技術

有關高新技術 一 高新技術的含義 高新科學技術,也叫高技術 高科技。年 高技術 一詞被收入美國出版的 韋氏第 三版國際詞典補充 個詞 中,由此作為乙個正式名詞固定下來。一般而言,它的含義 是動態變化的,是不斷發展的乙個概念。從地域上看,不同的國家對高技術有不同的理解。被稱為南韓 經濟起飛 科技發展之...