国产精品一区二区在线观看完整版,在线观看91精品国产性色,欧美日韩另类视频

杭州校區切換校區
圖標

學習文章

當前位置:首頁 > >學習文章 > >

{Java培訓}泛型的一個簡單例子

發布時間: 2017-06-16 10:50:24

泛型在Java中經常用到。泛型在本質上是指類型參數化。所謂類型參數化,是指用來聲明數據的類型本身,也是可以改變的,它由實際參數來決定。在一般情況下,實際參數決定了形式參數的值。而類型參數化,則是實際參數的類型決定了形式參數的類型。舉個簡單的例子。方法max()要求返回兩個參數中較大的那個,可以寫成:

Integer max(Integer a, Integer b){

return a>b?a:b;

}

這樣編寫代碼當然沒有問題。不過,如果需要比較的不是Integer類型,而是Double或是Float類型,那么就需要另外再寫max()方法。參數有多少種類型,就要寫多少個max()方法。但是無論怎么改變參數的類型,實際上max()方法體內部的代碼并不需要改變。如果有一種機制,能夠在編寫max()方法時,不必確定參數a和b的數據類型,而等到調用的時候再來確定這兩個參數的數據類型,那么只需要編寫一個max()就可以了,這將大大降低程序員編程的工作量。

在泛型出現之前,Java的程序員可以采用一種變通的辦法:將參數的類型均聲明為Object類型。由于Object類是所有類的父類,所以它可以指向任何類對象,但這樣做不能保證類型安全。

泛型則彌補了上述做法所缺乏的類型安全,也簡化了過程,不必顯示地在Object與實際操作的數據類型之間進行強制轉換。通過泛型,所有的強制類型轉換都是自動和隱式的。因此,泛型擴展了重復使用代碼的能力,而且既安全又簡單。

///聲明一個泛型類

public class Generic {

T ob; // ob的類型是T,現在不能具體確定它的類型,需要到創建對象時才能確定

Generic(T o) {

ob = o;

}

// 這個方法的返回類型也是T

T getOb() {

return ob;

}

// 顯示T的類型

void showType() {

System.out.println("Type of T is:" + ob.getClass().getName());

}

}

public class demoGeneric {

public static void main(String args[]) {

// 聲明一個Integer類型的Generic變量

Generic iobj;

// 創建一個Integer類型的Generic對象

iobj = new Generic(100);

// 輸出它的一些信息

iobj.showType();

int k = iobj.getOb();

System.out.println("k=" + k);

// 聲明一個String類型的Generic變量

Generic sobj;

// 創建一個Double類型的Generic對象

sobj = new Generic("Hello");

// 輸出它的一些信息

sobj.showType();

String s = sobj.getOb();

System.out.println("s=" + s);

}

}

  

上一篇: {Java培訓}復數運算

下一篇: {Java培訓}歸并排序

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優質服務!

<bdo id="pdyax"></bdo>

    <pre id="pdyax"></pre>
    <menuitem id="pdyax"></menuitem>
      <form id="pdyax"><tbody id="pdyax"></tbody></form>

      1. <center id="pdyax"><center id="pdyax"></center></center>
          1. 主站蜘蛛池模板: 寿阳县| 泸州市| 昭平县| 如皋市| 随州市| 沐川县| 双牌县| 石狮市| 盘锦市| 罗定市| 涿州市| 巴林右旗| 开平市| 广宁县| 义马市| 莆田市| 射阳县| 定州市| 怀来县| 巩留县| 丹江口市| 淮安市| 孟连| 林甸县| 汶川县| 石河子市| 辉县市| 随州市| 射洪县| 彭水| 额尔古纳市| 海兴县| 黄骅市| 二连浩特市| 玉山县| 隆尧县| 隆回县| 古交市| 商丘市| 扎赉特旗| 甘谷县|