黑馬程序員_Java泛型

 

---------------------- android培訓java培訓、期待與您交流! ----------------------

泛型是在“實例化對象的時候”才爲類中的屬性 指定具體的數據類型。是在類的外部指定。

泛型和object的區別:

 泛型代表一個可變的類型 一旦爲其指定了一個具體的類型。則泛型就固定了。不能再更改了。

 Object類型代表一個可變的類型 在任何時間、地點都可以接受任何數據類型。

舉個泛型的例子吧。

範例:

public class Point<T> {

    private T x;

    private T y;

    public Point(T x, T y) {

       this.x = x;

       this.y = y;

    }

    public T getX() {

       return x;

    }

    public T getY() {

       return y;

    }

    public void setX(T x) {

       this.x = x;

    }

}

測試代碼:

public class Test {

    public static void main(String[] args){

       Point<String> p1 = new Point<String>("120E","40N");

       String ix =  p1.getX();       

       String iy =  p1.getY();        

       System.out.println("x= "+ix+",y= "+iy);

    }

}

通配符:
以上面的Point類爲例
Point<?> p2 = new Point<Integer>(1,2);其中?就是通配符的意思。
Point<?>與Point<T>有什麼區別呢。前者表示可以接受任意Point<T>類型的對象,後者表示可以接受任意類型的對象。
泛型方法:
就是在一個非泛型類中定義一個使用了泛型的方法。
範例:

無返回值的方法:public <T>void method(T t){}

各種返回值的方法:public <T>T method(){} 返回一個泛型類型

public <T>T[] method(){} 返回一個泛型數組

在接口中使用泛型:
範例:

public interface MyIn<T>

{

public void method(T t);

}

一個類在實現泛型接口的同時爲接口指定一個具體的類型。相應的在接口中的方法中出現的泛型也要跟着改寫。

---------------------- android培訓java培訓、期待與您交流! ---------------------- 

詳細請查看:http://edu.csdn.net/heima

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章