网站大量收购闲置独家精品文档,联系QQ:2885784924

08_泛型概论.pptx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08_泛型概论

泛型 (时间:1次课,1学时) 第8章 泛型 8.1 泛型概述 8.2 泛型类和接口的定义及使用 8.3 有界类型参数 8.4 泛型方法 8.5 类型参数的通配符 8.6 擦除 8.7 泛型的局限 8.1 泛型概述 问题:编写一个简易的对象容器类,它可以存放任意数量对象?请注意潜在问题 class MyList{ public void add(Object obj){ …} public Object get(int index){ …} public int size(){ …} } public class MyListTest{ public static void main(String[] args){ MyList list = new MyList(); list.add(123abc); list.add(new Date()); list.add(new Random()); } } 使用泛型改写容器类 只能往这个容器中放置定义时指定类型的对象了,取出容器中的对象时也无须进行强制类型转换了。这样就使得这个容器类具有了更高的通用性。 class MyGenericListE{ public void add(E ele){ …} public E get(int index){ …} public int size(){ …} } public class MyGenericListTest{ public static void main(String[] args){ MyGenericListString list = new MyGenericListString(); list.add(123abc); list.add(new Date()); //编译报错 list.add(new Random()); //编译报错 } } 8.1.1 泛型定义 泛型:就是在定义类、接口、方法、方法参数或成员变量时,指定它的操作对象的数据类型为一个参数。 在具体使用类、接口、方法、方法参数或成员变量时,将这个参数用具体的某一数据类型来代替。 泛型的好处:它在编译时进行类型安全检查,并且在运行时所有的转换都是强制的、隐式的。提高了代码的重用率。 8.2.1 泛型类和接口的定义 定义语法 class 类名类型参数的名称 { …} interface 接口名类型参数的名称 { …} 说明:类型参数的名称建议使用单个大写字母。如常用的名有: E:表示集合中的元素类型。 K:表示“键值对”中的键的类型。 V:表示“键值对”中的值的类型。 T:表示其它所有的类型。 8.2.2 从泛型类派生子类 当某个类的父类是泛型类时:这个子类要把类型参数传递给父类;也可以把子类定义成特定于指定类型的,这个子类就不再是泛型类了。 class SuperClassT{ private T o; public SuperClass(T o){ this.o = o; } public String toString(){ return T: + o; } } /** 泛型类的继承 */ class SubClass T extends SuperClassT{ public SubClass(T o){ super(o); } } class SpecialSubClass extends SuperClassString{ public SpecialSubClass(String o){ super(o); } } 8.2.3 实现泛型接口 具体子类要把类型参数传递给所实现的接口;也可以把具体子类定义成特定于指定类型的。 interface MyGenericTypeInterfaceT{ } class MyImplementT implements MyGenericTypeInterfaceT{} class IntegerImplement implements MyGenericTypeInterfaceInteger{ } 8.3 有界类型参数 有界类型参数可以为泛型的类型参数指定一个上界 class StatisticsT extends Number { private T[] arrs; public Statistics(T[] arrs) { this.

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档