泛型(2021-10-28)

  泛型的作用是,允许类中属性、类中方法的参数和返回值在创建对象时动态决定,在类中用大写字母作为占位符(可以声明多个)。
  泛型出现之后,一个类就可以处理多种数据类型。之前用Object也可以实现,但向下转型可能运行时发生ClassCastException,而泛型出错在编译时就能发现。
  泛型只能处理引用数据类型,如包装类。
  泛型通配符"?",允许接收任意泛型并获取其中数据(不允许修改)。还有额外功能 ,"? extends 类名"设置泛型的上限 , "? super 类名"设置泛型的下限。
  下面是1个简单例子:

package package1;

public class Point<T> { //坐标类
    private T x;
    private T y;

    public Point(){}
    public Point(T x,T y){
        this.x=x;
        this.y=y;
    }

    public void setX(T x){
        this.x=x;
    }
    public void setY(T y){
        this.y=y;
    }

    public T getX(){
        return this.x;
    }
    public T getY(){
        return this.y;
    }
}

package package1;

public class Main {
    public static void main(String[] args) {
        Point<Integer> pointA = new Point<>(); //指定数据类型只对当前对象生效
        pointA.setX(5);
        pointA.setY(10);
        System.out.println("[整型坐标]横坐标为: " + pointA.getX() + " 、纵坐标为: " + pointA.getY());
        Point<String> pointB = new Point<>();
        pointB.setX("东经60度");
        pointB.setY("北纬30度");
        System.out.println("[字符串坐标]横坐标为: " + pointB.getX() + " 、纵坐标为: " + pointB.getY());
    }
}

  运行结果:
图片.png

posted @ 2022-04-29 20:43  fighterk  阅读(17)  评论(0)    收藏  举报