OOP 08_泛型程序设计、数据结构,及java1.5的新特性.pptVIP

OOP 08_泛型程序设计、数据结构,及java1.5的新特性.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OOP 08_泛型程序设计、数据结构,及java1.5的新特性

第8章 泛型程序设计、数据结构及jdk5的其它新特性 8.1泛型 8.2泛型数据结构类 8.3主要的集合类应用 8.4主要的映射类应用 8.5 自动包装和解包 8.6. 枚举 8.7. 可变长参数的方法 8.8. 静态引用 8.9. 元数据-meta data(注解) 8.1.1 :没有泛型的日子(1) JDK5以前的List操作: 类List的add方法接受一个Object参数: public boolean add(Object element) 类List的函数get方法从中取出一个对象: 一般编码示例: List stuList1 = new ArrayList(); stuList1.add( new Student(“张三”,”200080001”) ); stuList1.add( new Student(“李四”,”200080002”) ); //String nm = stuList1.get(2).getName(); ??? XXX … Student s1 = (Student) stringList1.get(0); //需要强制转换 String nm = s1.getName(); String no = s1.getNumber(); 8.1.1 :没有泛型的日子(2) 如果我们能限制装入对象的数据类型,使其保持一致,就能很好的 解决这个问题,这样取数据的时候将不要数据类型的强制转化. 实现方式一(走专门的List类的道路): 根据编程需要,在开发期间专门开发各种专有List对象. 比如针 对工需,开发一个EmployeeList. EmployeeList employeeList = new EmployeeList(); 实现方式二(走通用的List类的道路,泛型 ): 根据编程需要,开发一个通用的List类,在实例化的时候决定其 存放元素的数据类型. 也就是说数据类型也成为运行时制定. ArrayList Employee employeeList = new ArrayList() Employee; Employee emp=employeeList.get(0); 8.1.2 泛型:什么是泛型? 普通类: 定义类时,不带参数 实例成员的类型确定,每个类实例的数据成员类型固定 方法成员的传入参数类型确定,返回值类型确定。 抽象能力有限 泛型类: 以类型作为参数定义类。 实例成员的类型可变,同一类的不同实例的数据成员类型可以不同 方法成员的传入参数类型可变化,返回值类型也可变。 增强代码重用率,具有类型检查功能,确保程序的安全性 8.1.2 :泛型类例子 创建一个只能包含整型对象的ArrayList并使用. (包含声明,实例化,存入,取出) //声明区(declaration) ArrayListInteger intList; ArrayList Student stuList; //实例化(instantiation) intList = new ArrayListInteger(); //注意这里的写法 stuList = new ArrayList Student (); //存入 intList.add(new Integer(10)); //不存入整数,会如何? stuList.add(new Student(“张三”,”200090001” ) ) ; //取出 Integer intObject=intList.get(0); //不需要显示类转化 Student stuObject=stuList.get(0); // 8.1.3 泛型的定义:泛型类/泛型接口(generic class/ generic interface) 在定义一个泛型类的时候,在“”之间定义形式类型参数, 例如: public class TestGenK,V{ K kProp; V vProp; TestGen(K k, V v){ kProp=k; vProp=v; } K getKProp(){ return kProp;} … } 其中“K” , “V”不代表值,而是类型变量 泛型接口: interface BaseInterfaceA { A getInfo(); } 8.1.3与方法定义类比 方法以值为参数, method(String str1,String str2 ),其中str1、str2的值可变。 泛型以类型为参数,可用以下格式定义类

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档