泛型类

泛型:指的就是在类定义的时候并不会设置类中的属性或方法中的参数的具体类型,而是在类使用时再进行定义。
如下,就是一个泛型类;
class 类名< T>{

}
尖括号<>中的T被称作类型参数,可以是任何类型,当然也可以用E、S等符号来代替T,这种形式的类就叫做泛型类。
常见的如:
T 代表一般的任何类。
E 代表 Element 的意思,或者 Exception 异常的意思。
K 代表 Key 的意思
V 代表 Value 的意思,通常与 K 一起配合使用。
S 代表 Subtype 的意思,

public class PointFanxing<T> {
    //尖括号 <> 中的 T 被称作是类型参数,用于指代任何类型
    //如果一个类被 <T> 的形式定义,那么它就被称为是泛型类
    //注意:泛型只能接受类,所有的基本数据类型必须使用包装类

    //x、y的类型相同
    private T x;
    private T y;
    public PointFanxing(T x, T y) {
        this.x = x;
        this.y = y;
    }
    public T getX() {
        return x;
    }
    public T getY() {
        return y;
    }

    public static void main(String[] args) {
        //有一个缺点,就是x、y的类型必须相同
        PointFanxing<Integer>  point=new PointFanxing<>(12,13);
        Integer x=point.getX();
        Integer y=point.getY();
        System.out.println("x="+x+","+"y="+y);

        PointFanxing<String>  point2=new PointFanxing<>("北纬30度","东经12度");
        String x1=point2.getX();
        String y1=point2.getY();
        System.out.println("x1="+x1+","+"y1="+y1);
    }
}

在上面的代码中,x、y的类型因为都是用同一个字母表示的,所以他们的类型相同,为了让他们的类型不一样,可以用下面的泛型类:
class 类名<T,E>{

}
通过这种多个不同字母代表的参数,可以接收多个类型参数

public class PointFanxing2<T,E> {
    //x、y的类型可以不一样
    private T x;
    private E y;
    public PointFanxing2(T x, E y) {
        this.x = x;
        this.y = y;
    }
    public T getX() {
        return x;
    }
    public E getY() {
        return y;
    }
   public static void main(String[] args) {
        PointFanxing2<Integer, String> point2 = new PointFanxing2<>(20, "北纬30度");
        Integer x = point2.getX();
        String y = point2.getY();
        System.out.println("(" + x + ", " + y + ")");
    }
}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值