泛型作用
1泛型为不定类型即可以是任意类型
如:
class Point<A>{//A为一种未知类型(只是名称)
private A x ;//Object型可以指向任意类型的变量
private A y;
public A getX() {
return x;
}
public void setX(A x) {
this.x = x;
}
public A getY() {
return y;
}
public void setY(A y) {
this.y = y;
}
}
public class Genericdemo01 {
public static void main(String[] args) {
Point<String>p=new Point<String>();//<需要什么类型设定什么类型>
p.setX("我的家乡是安徽");
p.setY("我的家乡是辽宁");
System.out.println(p.getX()+" "+p.getY());
}
}
泛型构造方法
private T name;
public A(T _name) {// 泛型的构造方法
name = _name;
}
public T getName() {
return name;
}
public void setName(T name) {
this.name = name;
}
}
public class Generic {
public static void main(String[] args) {
A<String> a = new A<String>("String类型");
A<Integer> b = new A<Integer>(500);
A<String> c = new A<String>("再创建");
System.out.println(a.getName());
//a,b,c分别是不同对象,因此他们的值互不影响
System.out.println(b.getName());
System.out.println(c.getName());
}
}
多个泛型的定义
private A take;
private B key;
public A getTake() {
return take;
}
public void setTake(A take) {
this.take = take;
}
public B getKey() {
return key;
}
public void setKey(B key) {
this.key = key;
}
}
public class GEnericdemo03 {
public static void main(String[] args) {
Gen<String,Integer>g=new Gen<String,Integer>();
/*类型定义顺序决定了下面对象类型
* 可以创建一个泛型,但必须多次声明创建对象
*
*/
g.setTake("String类型");
g.setKey(900);
System.out.println("take: "+g.getTake()+" "+"key :"+g.getKey());
}
}