下面代碼是java泛型的例子
/**
* 自訂屬性類型的類
*
* @author limeteor
*
*/
public class Student<T> {
String name;//名稱
T address;//自訂類型 的地址
/**
* 地址的get()方法
* @return 自訂類型
*/
public T getAddress(){
return address;
}
/**
* 地址的set()方法
* @param 自訂類型
*/
public void setAddress(T address){
this.address = address;
}
/**
* 名稱的get()方法
* @return String類型
*/
public String getName(){
return name;
}
/**
* 名稱的set()方法
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 無參數的構造方法
*/
public Student(){
super();
}
/**
* 有二個參數的構造方法
* @param name
* @param address
*/
public Student(String name,T address){
super();
this.name = name;
this.address = address;
}
/**
* main()方法
* @param args
*/
public static void main(String[] args) {
Student<String> stu = new Student<String>();
stu.name="Limeteor";
stu.address = "中國陝西西安158號";
System.out.println(stu.getAddress());
Student<Address> stu1 = new Student<Address>();
stu1.setName("qingqing");
stu1.setAddress(new Address("中國", "陝西", "西安", 158));
System.out.println(stu1.getAddress());
}
}
/**
* 定義一個類
*
* @author limeteor
*
*/
class Address {
String country;// 國家
String city;// 城市
String street;// 街道
int no;// 門牌號
/**
* 帶參數的構造方法
*
* @param country
* @param city
* @param street
* @param no
*/
public Address(String country, String city, String street, int no) {
super();
this.country = country;
this.city = city;
this.street = street;
this.no = no;
}
/**
* 無參數的方法
* @return 返回詳細的地址資訊
*/
public String toString() {
return country + city + street + no + "號";
}
}
要注意的知識點有
1.定義一個泛型類,就是在類名後面的角括弧中定義一個名稱,代表一個資料類型,在本類中被用到。
2.T在程式中可以稱為一種特定的資料類型。
3.T在類中可以用作成員變數的類型,方法參數類型,方法傳回值類型。
4.在定義Student對象時,需要指明T的實際類型,這裡指定的是String類型,同樣指明的是Address類型。