泛型泛型(generic)概述和基本使用
泛型把明確資料型別的操作放到建立物件或者呼叫方法的時候再明確。
jdk1.5之後的新特性。
格式:《引用資料型別》
好處:泛型保證集合中的資料型別一致,提高安全性。把執行期異常提前到編譯期。
那麼在jdk1.5之前怎麼實現引數的任意化呢?
是通過接收object型別的引數實現的。因為任意類直接或間接繼承自object。
但這樣實現的缺點就是,還是不能保證資料型別的安全一致。
object obj1 = new student();
object obj2 = new teacher();
上面兩個物件都宣告為object型別,那獲取元素的時候到底該如何轉型呢?還是存在問題。
應用:泛型類
泛型介面
泛型方法
2、arraylist儲存字串和自定義物件並遍歷泛型版
3、泛型的由來
補充:泛型擦除
檢視下述兩個方法:
public void show(arraylistlist) {}
public void show(arraylistlist){}
/** 上述兩個方法是不會形成方法的過載的,會報方法已存在的錯誤。 原因:泛型擦除
* 泛型是1.5中引入的乙個新的概念,由於不用進行強制轉換型別了,所以具有較高的安全性和易用性。
* 因為泛型其實只是在編譯器中實現的而虛擬機器並不認識泛型
* ,所以要在虛擬機器中將泛型型別進行擦除。也就是說,在編譯階段使用泛型,執行階段取消泛型,即擦除。
* 擦除是將泛型型別以其父類代替,如string變成了object等。
* 其實在使用的時候還是進行帶強制型別的轉化,只不過這是比較安全的轉換,因為在編譯階段已經確保了資料的一致性。
*/4、泛型類的概述及使用
明確資料型別的工作放到了建立物件的時候
5、泛型方法的概述和使用
明確資料型別的工作放到了呼叫方法的時候
方法泛型 <> 加在返回值前面。
6、泛型介面的概述和使用
一種是子類實現介面的時候明確資料型別
inte***ce fu{}
class zi implements fu{}
一種是子類繼續使用泛型:
class ziimplements fu{}
7、泛型高階之萬用字元
<?> -- 泛型萬用字元
<? extends e> -- 向下限定,接收e及其子類型別
<? super e> -- 向上限定,接收e及其父類型別
原理:多型。 -- 父類引用指向子類物件。 fu fu = new zi();
泛型的概念
泛型 定義 泛型是 通過引數化型別來實現在同乙份 上操作多種資料型別 的 技術。利用 引數化型別 將型別抽象化,從而實現靈活的復用。優點1 提高了 的復用性 2 提高了效能,指定型別,解決了型別的轉換,避免了拆箱與裝箱 3 比較安全 泛型的格式 宣告乙個泛型的方法,方法名後面需要乙個 其中字母t不是...
AJPFX總結集合的概念
集合的概念 為了儲存這些數目不確定的物件,jdk中提供了一系列特殊的類,這些類可以儲存任意型別的物件,並且長度可變,統稱為集合。集合的兩大類 即1.單列集合 collection 2.雙列集合map collection 的特點 單列集合類的根介面,用於儲存一系列符合某種規則的元素,它有兩個重要的子...
泛型 泛型簡介和泛型類
在泛型引入之前,如果我們需要產生多個物件,每個物件的邏輯完全一樣,只是物件內的成員變數的型別不同,那麼我們只能建立多個類檔案,給每個類的成員變數設定不同的資料型別。這麼做會導致類的膨脹,重用性太差。一種方式是對將object作為變數型別,但是需要對獲取的資料進行強制型別轉換,這個過程可能導致型別轉換...