黑马程序员:Java基础总结----泛型

黑马程序员:Java基础总结



泛型

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



泛型:JDK1.5版本以后出现新特性。
用于解决安全问题,是一个类型安全机制。

好处
1.将运行时期出现问题ClassCastException,转移到了编译时期。,
     方便于程序员解决问题。让运行时问题减少,安全。,

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



泛型定义在类上

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

class  Utils<QQ>  让编译器不会报错QQ不存在 类似于QQ 全部替代啦Object
{
        private  QQ  q  ;
        public  void  setObject(QQ q)
      {
              this . q  = q;
      }
        public  QQ getObject()
      {
              return  q  ;
      }
}


泛型定义在方法上

特殊之处:
静态方法不可以访问类上定义的泛型。
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。

class  Demo<T>
{
        public    void  show(T t)
      {
            System.  out .println( "show:"  +t);
      }
        public  <Q>  void  print(Q q)
      {
            System.  out .println( "print:"  +q);
      }
        public    static  <W>  void  method(W t)
      {
            System.  out .println( "method:"  +t);
      }
}

泛型定义在接口上

interface  Inter<T>
{
        void  show(T t);
}

class  InterImpl <T>   implements  Inter<T>  //实现方法是也要<T>
{
        public  void  show(T t)
      {
            System.  out .println( "show :"  +t);
      }
}


? 通配符。
也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限

public  static  void  printColl(Collection <?  extends  Person> al)








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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值