有泛型类定义如下,请回答问题:
public class Person {
private X info;
public Person() { }
public Person(X info) {
this.info = info;
}
public void setInfo(X info){
try{
this.info = info;
}catch(Exception e){
e.printStackTrace();
}
}
public X getInfo() {
return info;
}
public String toString() {
return "某人,信息[" + info + "]";
}
}
(1)在main方法中,创建Person类对象a、b,类型参数分别为String、Integer,并分别调用方法测试,并记录输出结果。
(2)定义泛型类Point
(3)在Person类中,定义静态方法:test(Point p),输出p点坐标值。
(4)在main方法中,调用test方法测试,并记录输出结果。
在一般类的基础上使用泛型参数即可,代码如下:
Person 类:
package Person;
public class Person<X> {
private X info;
public Person() { }
public Person(X info) {
this.info = info;
}
public void setInfo(X info){
try{
this.info = info;
}catch(Exception e){
e.printStackTrace();
}
}
public X getInfo() {
return info;
}
public String toString() {
return "某人,信息[" + info + "]";
}
public static void main(String[] args) {
// 第一题,使用String参数来测试泛型Person类
Person <String> a = new Person<String>();
a.setInfo("张三");
System.out.println(a.toString());
//使用Integer参数来测试泛型Person类
Person <Integer> b = new Person<Integer>();
b.setInfo(8848);
System.out.println(b.toString());
//第四题,测试test方法
Point<Double,Double> p1 = new Point<Double,Double>();
p1.set(113.23, 116.26);
test(p1);
}
// 第三题 ,定义test方法,输出p点的坐标
public static void test(Point p) {
System.out.println("x="+p.getX()+",y="+p.getY());
}
}
Point类:
package Person;
// 第二题,定义Point泛型类
public class Point<T1,T2> {
private T1 x;
private T2 y;
public T1 getX() {
return x;
}
public T2 getY() {
return y;
}
public void set(T1 x,T2 y) {
this.x = x;
this.y = y;
}
}