- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新世纪应用型高等教育 软件专业系列规划教材 大连理工大学出版社 第8章 Java泛型与Java集合 8.1 java 泛型 8.3 java泛型和java集合实训 8.2 java 集合 8.1 Java 泛型 泛型是Java SE 5.0的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。但是与方法中的参数不同,泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 泛型类中的静态方法不能访问泛型类的类型参数。 8.1.1 Java 泛型基本概念 8.1 Java 泛型 设置通配符的上限,Java 5.0 引入泛型后extends关键字有了另外的含义,使用extends关键字可以设置泛型通配符的上限,形式如下: ? extends A 其中的通配符 ?表示一个受限制的通配符,此处的“?”意为 :通配符 “?”只能是 A类其子类作为泛型参数的泛型的的父类,而不再是任意类型参数泛型的父类。 设置Java 泛型通配符的下限。设置Java 泛型通配符下限的关键字是super,此处的关键字super不再表示Java继承中的超类的概念。设置Java泛型通配符下限的形式如下: ? super A 其中泛型通配符“?”表示一个受限的泛型通配符,意为:通配符“ ?”只能是 A 类及其父类的作为参数的泛型的父类,而不再是任意类型作为参数的泛型的父类。 8.1.2 Java泛型类型通配符 8.1 Java 泛型 泛型不仅应用于整个类上。同样可以在类中包含参数化方法,而这个方法所在的类可以是泛型类,也可以不是泛型类。也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。 泛型方法使得该方法能够独立于类而产生变化。以下是一个基本的指导原则:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使程序更简单明了。另外,对于一个static的方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。 8.1.3 Java 泛型方法 8.1 Java 泛型 泛型方法的定义格式: 访问权限修饰符 T,S,… 返回类型 方法名(形参列表){ } 与泛型类、泛型接口中的泛型类型参数不同,泛型方法中定义的泛型形参的作用域限于该方法内。而泛型类或泛型口中定义的泛型形参的作用域为整个类或接口。 此外泛型方法在使用时无需传入泛型实参,这与泛型类和泛型接口也不同。 8.1.3 Java 泛型方法 8.1 Java 泛型 Java 语言允许在使用泛型类时不指定泛型类型参数。如果没有为泛型类指定类型参数,则该类型参数被退化成一个raw type(原始类型),退化后,默认成该类型参数声明时的第一个上限类型。 当把泛型类的实例赋给一个非泛型引用变量时,则泛型类的泛型参数被檫除。退化成非泛型实例。 8.1.4 Java 泛型擦出和转换 8.2 Java集合 Java中的集合框架提供了一套设计优良的接口和类,使程序员操作成批的数据或对象元素极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的。并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也可以以这个集合框架为基础,定义更高级别的数据抽象,比如栈、队列和线程安全的集合等,从而满足自己的需要。 8.2 Java集合 Java SE 5.0 增加了泛型支持很大程度上是为了让集合能记住其元素的数据类型。 在没有泛型之前,一旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型。把所有元素都当成Object类型处理。当程序从集合中取出元素后,需要进行强制类型转换,这种转化使得程序代码臃肿,转换不当会引发ClassCastException异常。 Java SE 5.0改写了Java集合框架中全部接口和类,增加了泛型支持。 8.2 Java集合 8.2.1 Java集合概述 8.2 Java集合 8.2.1 Java集合概述 8.2 Java集合 8.2.1 Java集合概述 8.2 Java集合 8.2.1 Java集合概述 Java提供了非常复杂的集合类型,不易理解、掌握,通过一步简化Java集合框架非常有助于理解Java集合框架。从简化的Java集合框架图中看出,Java集合框架主要提供了3种类型的集合和1个迭代接口
文档评论(0)