您的位置:首页 > 职场人生

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

2014-04-21 19:13 141 查看
----------------------
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培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 黑马程序员