国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第8章-第1節(jié)-Java中的泛型(參數(shù)化類型)

這篇具有很好參考價值的文章主要介紹了第8章-第1節(jié)-Java中的泛型(參數(shù)化類型)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、泛型在java中有很重要的地位,在面向?qū)ο缶幊碳案鞣N設(shè)計模式中有非常廣泛的應(yīng)用。什么是泛型?為什么要使用泛型?

List arrayList = new ArrayList();
arrayList.add("aaaa");
arrayList.add(100);

for(int i = 0; i< arrayList.size();i++){
    String item = (String)arrayList.get(i);
    System.out.println(item);
}

2、概念:在類聲明體中用到了類型參數(shù)。

/*
class 類型名<泛型標(biāo)識,泛型標(biāo)識, ...>{
    private 泛型標(biāo)示 變量名;
}
*/
public class GenericDemo<T> {
    private T key;

    public GenericDemo(T key) {
        this.key = key;
    }

    public T getKey() {
        return key;
    }

    public void setKey(T key) {
        this.key = key;
    }

    public static void main(String[] args) {
        /*
        類名<具體的數(shù)據(jù)類型> 對象名 = new 類目<具體的數(shù)據(jù)類型>();

        JDK1.7后,可以省略成這樣:
        類名<具體的數(shù)據(jù)類型> 對象名 = new 類目<>();
        */
        GenericDemo<Integer> integerGenericDemo = new GenericDemo<>(10);
        GenericDemo<String> stringGenericDemo = new GenericDemo<>("abc");
        //如果沒有指定具體的數(shù)據(jù)類型,此時,操作類型是Object
        GenericDemo genericDemo = new GenericDemo("genericDemo");

        System.out.println(integerGenericDemo.key);
        System.out.println(stringGenericDemo.key);
        System.out.println(genericDemo.key);
        //泛型類型在邏輯上可以看成是多個不同的類型,但實際上是相同類型
      System.out.println(integerGenericDemo.getClass()==stringGenericDemo.getClass());	//輸出結(jié)果為true
    }
}

3、泛型類只支持類類型,不支持基本數(shù)據(jù)類型(如int),但可以用包裝類(如Integer )

泛型標(biāo)識 含義
T Type 類型
E Element 元素
K Key 鍵
V Value 值

4、泛型類的繼承:

1)、子類也是泛型類,子類和父類的泛型標(biāo)識要一致。子類也可以擴展泛型標(biāo)識,但子類中至少有一個泛型標(biāo)識與父類相同;

2)、子類不是泛型類,父類要明確泛型的數(shù)據(jù)類型;

//1.子類也是泛型類,子類和父類的泛型標(biāo)識要一致
class Child<T> extends Parent<T>{}

//也可以擴展,但子類中至少有一個泛型標(biāo)識與父類相同
class Child<T,E> extends Parent<T>{}

//2.子類不是泛型類,父類要明確泛型的數(shù)據(jù)類型
class Child extends Parent<String>{}

?5、泛型方法:

泛型類和泛型方法的區(qū)別
泛型類 實例化類的時候指明泛型的具體類型
泛型方法 調(diào)用方法的時候指明泛型的具體類型
修飾符 <T,E,...> 返回值類型 方法名(形參列表){
    方法體... 
}

1)、?public 和 返回類型中間的標(biāo)識符,可以理解為,聲明該方法為泛型方法;

2)、只有聲明了的方法是泛型方法,泛型類中的未申明的成員方法不是泛型方法;

3)、表明,該方法使用泛型類型T,可以使用在返回類型,傳入?yún)?shù)列表,方法體里;

public class GenericDemo<T> {
    public static <E> void print(E... e){
        for(int i = 0; i < e.length; i++){
            System.out.println(e[i]);
        }
    }

    public static void main(String[] args) {
        GenericDemo.print(1,2,3,4,5);
        GenericDemo.print("a","b","c");
    }
}

6、泛型總結(jié):

泛型代碼層面:
1): 集合   List<String>  限制集合內(nèi)元素類型
2):泛型類和泛型方法  :  提高方法或者類的靈活度  , 設(shè)計度
                 目的:能讓一個方法或者類  干跟多 相似的業(yè)務(wù)!??!
理論層面:
    1): 繼承 :
        1> 子類 繼承 泛型父類 ,
            1.1> 如果子類也是泛型類,那么至少要有一個標(biāo)識和父類相同
                子類也可以有自己的泛型標(biāo)識
            1.2> 如果子類不是泛型類,那么在繼承/實現(xiàn)的時候,就要指定
                父類的泛型標(biāo)識的數(shù)據(jù)類型!??!
                如果不指定,編譯器會按照 Object 處理?。?!
    2):  為什么編譯會按照Object 來處理
        泛型擦除:泛型 只會在 編譯的時候起作用,
        在編譯完成后,JAVA虛擬機在運行時將會擦除所有的泛型標(biāo)識 ,
        這個時候,如果沒有給定泛型標(biāo)識的類型,那么就會按照Object處理?。?!

本電子書目錄:《Java基礎(chǔ)的重點知識點全集》文章來源地址http://www.zghlxwxcb.cn/news/detail-816656.html

到了這里,關(guān)于第8章-第1節(jié)-Java中的泛型(參數(shù)化類型)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java 中的泛型是什么,它有什么作用?(十五)

    Java中的泛型是一種類型參數(shù)化機制,它使代碼更具可讀性、可重用性和穩(wěn)健性。在Java中,通過使用泛型,可以將類型作為參數(shù)傳遞給類或方法,并在編譯時執(zhí)行類型檢查,從而避免許多運行時錯誤。 泛型的基礎(chǔ) Java泛型的基礎(chǔ)概念是類型變量、類型參數(shù)和類型邊界。 類型變

    2024年02月03日
    瀏覽(26)
  • TypeScript中的泛型(泛型函數(shù)、接口、類、泛型約束)

    一、泛型函數(shù) TypeScript 泛型是一種可以使代碼具有更高的可重用性和泛化能力的特性 。通過泛型,我們可以定義一種通用的類型或函數(shù),使其能夠應(yīng)對多種類型的輸入。泛型在類、函數(shù)、接口等多種場景下都可以使用。 具體來說,在定義泛型函數(shù)時,我們可以使用來表示一

    2024年02月11日
    瀏覽(23)
  • 【TypeScript】TypeScript中的泛型

    定義一個函數(shù)或類時,有些情況下無法確定其中要使用的具體類型(返回值、參數(shù)、屬性的類型不能確定),此時泛型便能夠發(fā)揮作用。 舉個例子: 上例中,test函數(shù)有一個參數(shù)類型不確定,但是能確定的時其返回值的類型和參數(shù)的類型是相同的,由于類型不確定所以參數(shù)和

    2024年02月09日
    瀏覽(29)
  • C++中的泛型詳細講解

    它是一種泛化的編程方式,其實現(xiàn)原理為程序員編寫一個函數(shù)/類的代碼示例,讓編譯器去填補出不同的函數(shù)實現(xiàn)。允許您延遲編寫類或方法中的編程元素的數(shù)據(jù)類型的規(guī)范,直到實際在程序中使用它的時候。換句話說,泛型允許您編寫一個可以與任何數(shù)據(jù)類型一起工作的類或

    2024年02月12日
    瀏覽(30)
  • python中的泛型使用TypeVar

    PEP484的作者希望借助typing模塊引入類型提示,不改動語言的其它部分。通過精巧的元編程技術(shù),讓類支持[]運算不成問題。但是方括號內(nèi)的T變量必須在某處定義,否則要大范圍改動python解釋器才能讓泛型支持特殊的[]表示法。 鑒于此,我們增加了typing.TypeVar構(gòu)造函數(shù),把變量

    2024年02月04日
    瀏覽(25)
  • Kotlin中的泛型理解與應(yīng)用

    泛型是一種在編程中用于增加代碼的靈活性和重用性的概念。它允許我們編寫可以在多種類型上工作的通用代碼,而不需要為每種類型都編寫不同的代碼。 在Kotlin中,泛型可以應(yīng)用于類、函數(shù)和接口等。下面是一些關(guān)于泛型在Kotlin中的理解和示例。 1、泛型類 泛型類是指可以

    2024年02月07日
    瀏覽(24)
  • Java的泛型詳解

    Java泛型是一種編程語言的特性,它允許類、接口和方法在定義時使用一個或多個類型參數(shù),這些類型參數(shù)在調(diào)用時會被實際類型替換,從而增強了代碼的重用性和類型安全性。通過使用泛型,我們可以編寫出更加通用的代碼,同時也可以減少代碼中的強制類型轉(zhuǎn)換操作,提高

    2024年02月04日
    瀏覽(24)
  • Java的泛型

    Java的泛型

    泛型是我們需要的程序設(shè)計手段。使用泛型機制編寫的程序代碼要比那些雜亂地使用 Object 變量,然后再進行強制類型轉(zhuǎn)換的代碼具有更好的安全性和可讀性。 至少在表面上看來,泛型很像 C++ 中的模板。與 Java —樣,在 C++ 中,模板也是最先被添加到語言中支持強類型集合的

    2024年02月08日
    瀏覽(21)
  • java的泛型【詳解】

    java的泛型【詳解】

    定義類、接口、方法時,同時聲明了一個或者多個類型變量(如:E) ,稱為泛型類、泛型接口,泛型方法、它們統(tǒng)稱為泛型。 作用:泛型提供了在編譯階段約束所能操作的數(shù)據(jù)類型,并自動進行檢查的能力!這樣可以避免強制類型轉(zhuǎn)換,及其可能出現(xiàn)的異常。 1.泛型類:

    2024年02月19日
    瀏覽(18)
  • Java泛型:靈活多變的類型參數(shù)化工具

    Java泛型:靈活多變的類型參數(shù)化工具

    ??專欄內(nèi)容:Java ?個人主頁:子夜的星的主頁 ??座右銘:前路未遠,步履不停 在傳統(tǒng)的編程方法中,類和方法通常被限定為使用特定的類型。這些類型可能是基礎(chǔ)的數(shù)據(jù)類型(如整數(shù)、字符等),或者是由程序員自己定義的復(fù)雜類型。這種方式在處理單一類型數(shù)據(jù)時很有

    2024年02月01日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包