JAVA高级篇----泛型

一.泛型

1.什么是泛型

所谓的泛型就是在类定义时,不为类中属性和方法指定数据类型,而是在类对象创建时为其指定相应的数据类型。

其实我们再使用集合时就用过泛型List<T> 创建一个List对象List<T> list=new ArrayList();

<T>它就是泛型。

2.泛型的作用 

解决数据类型的安全问题

        泛型的主要目标是提高 Java 程序的类型安全。编译时的强类型检查;通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。其主要原理是在类声明时通过一个标识表示类中某个属性的数据类型或者是某个方法的返回值及参数类型。这样在类声明或者实例化时只要指定好需要的类型即可。

3.泛型的定义

泛型可以定义在类上,接口上,方法上。 泛型类,泛型接口以及泛型方法。

泛型定义的格式: 

     修饰符 class 类名 <泛型标志,泛型标志.......>{

        

      }


//这是使用的是默认修饰符
//T标志可以任意起名。
class Point<T>{
    //定义T类型的对象
    private T name;

    //普通方法
    public void show(){
        System.out.println("name的名字是:"+name);
    }

    public T getName() {
        return name;
    }

    public void setName(T name) {
        this.name = name;
    }

    public Point() {
    }

    public Point(T name) {
        this.name = name;
    }
}

4.使用泛型

//新建测试类调用定义好的泛型类(调用时可以指定泛型的类型,默认为Object类型)
public class Test02 {
    public static void main(String[] args) {
        //指定泛型为字符串类型
        Point<String> point = new Point<String>();
        point.setName("st");
        point.show();
        //指定泛型为Integer类型(可以通过get、set传参,也可以直接使用构造函数传参)
        Point<Integer> point = new Point<Integer>(53);
        point.show();

        //指定泛型为Double类型
        Point<Double> point = new Point<Double>(5.3);
        point.show();
    }
}

 注意: 上面的泛型类型必须都是引用类型。不能是基本类型

5.通配符

 在开发中对象的引用传递是最常见的,但是如果在泛型类的操作中,在进行引用传递时泛型类型必须匹配才可以传递,否则是无法传递的。如果想传递,可以定义泛型为?通配符。

public class Demo02 {
    public static void main(String[] args) {
        //不定义则是Object类型
        Info info = new Info();
        info.setT("3.23sdkd");
        fun(info);

        //定义泛型为String类型
        Info<String> info1 = new Info<>();
        //只能添加String类型的值
        info1.setT("哈哈哈");
        //fun(info1);

       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值