黑马程序员------第11天笔记(泛型)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

泛型

1,泛型:JDK1.5后java出现的新特性,用于解决安全问题,是一种类型安全机制参照的是数组的定义格式,力求在编译时就能报错

2,升级有3方面:1,高效2,简化书写3,安全

 

3,出现的好处:

 

1,将运行时ClassCastException,转移到了编译时期方便程序员解决问题

让运行时的问题减少,安全。

2,避免了强制转换的麻烦。

4,泛型格式:通过<>来定义要操作的引用数据类型。其实<>就是用来接受类型的。当使用集合时将集合中要存储的数据类型作为参数传递到<>即可。

5,泛型类

class Utils<T>

{

       private T obj;

       public void setObject(T obj)

       {

              this.obj=obj;

       }

       public T getObject()

       {

              return obj;

       }

}

class  GenericDemo3

{

       public static void main(String[] args)

       {

              Utils<Student> t=newUtils<Student>();

 

              t.setObject(new Student());

              Student w=t.getObject();

              System.out.println(w);

       }

        }

什么时候定义泛型类:

当类中要操作的引用数据类型不确定的时候,早期定义Object来完成扩展,现在定义泛型来完成扩展

6,泛型方法

class Demo

{

       public <T> void show(T t)

       {

              System.out.println("show:"+t);

       }

       public <T> void print(Tt)

       {

              System.out.println("print:"+t);

       }

}

 

Demo d=new Demo();

d.show("hahah");

d.print(new Integer(8));

 

7,静态方法泛型

 

              静态方法不可以访问类上定义的泛型

                   如果静态方法操作的引用数据类型不确定,可以将泛型定义在方法上。

 

                   public static <T> voidshow()

                   泛型一定要定义在返回类型前面。

8,泛型接口

       interface Inter<T>

       {

              void show(T  t);

}

class  InterImpl<T>  implements Inter<T>

{

       public void show(T t)

       {

              System.out.println(“show”+t);

}

}

9,泛型限定

       当类型不确定时可以用一个通配符?来表示

         不明确类型的情况下用表示

 

         ArrayList<? extends Person>  al

         意思:al为Person类型以及Person的子类型

 

         泛型限定有两个限制:上限和下限

        

         ?:通配符,又叫占位符

                   ? extends E:可以接收E及E的子类à上限限定

                   ? super E  :可以接收E类型或者E的父类à下限限定


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值