欢迎来到天天文库
浏览记录
ID:49908940
大小:1.85 MB
页数:21页
时间:2020-03-04
《JAVA核心编程技术8.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章Java泛型与Java集合8.1java泛型8.3java泛型和java集合实训8.2java集合8.1Java泛型泛型是JavaSE5.0的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。但是与方法中的参数不同,泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。泛型类中的静态方法不能访问泛型类
2、的类型参数。8.1.1Java泛型基本概念8.1Java泛型设置通配符的上限,Java5.0引入泛型后extends关键字有了另外的含义,使用extends关键字可以设置泛型通配符的上限,形式如下:其中的通配符?表示一个受限制的通配符,此处的“?”意为:通配符“?”只能是A类其子类作为泛型参数的泛型的的父类,而不再是任意类型参数泛型的父类。设置Java泛型通配符的下限。设置Java泛型通配符下限的关键字是super,此处的关键字super不再表示Java继承中的超类的概念。设置Jav
3、a泛型通配符下限的形式如下:其中泛型通配符“?”表示一个受限的泛型通配符,意为:通配符“?”只能是A类及其父类的作为参数的泛型的父类,而不再是任意类型作为参数的泛型的父类。8.1.2Java泛型类型通配符8.1Java泛型泛型不仅应用于整个类上。同样可以在类中包含参数化方法,而这个方法所在的类可以是泛型类,也可以不是泛型类。也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。泛型方法使得该方法能够独立于类而产生变化。以下是一个基本的指导原则:无论何时,只要你能做到,你就应该尽量使
4、用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使程序更简单明了。另外,对于一个static的方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。8.1.3Java泛型方法8.1Java泛型泛型方法的定义格式:访问权限修饰符返回类型方法名(形参列表){}与泛型类、泛型接口中的泛型类型参数不同,泛型方法中定义的泛型形参的作用域限于该方法内。而泛型类或泛型口中定义的泛型形参的作用域为整个类或接口
5、。此外泛型方法在使用时无需传入泛型实参,这与泛型类和泛型接口也不同。8.1.3Java泛型方法8.1Java泛型Java语言允许在使用泛型类时不指定泛型类型参数。如果没有为泛型类指定类型参数,则该类型参数被退化成一个rawtype(原始类型),退化后,默认成该类型参数声明时的第一个上限类型。当把泛型类的实例赋给一个非泛型引用变量时,则泛型类的泛型参数被檫除。退化成非泛型实例。8.1.4Java泛型擦出和转换8.2Java集合Java中的集合框架提供了一套设计优良的接口和类,使程序员操作成批的数据或对象元素
6、极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的。并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也可以以这个集合框架为基础,定义更高级别的数据抽象,比如栈、队列和线程安全的集合等,从而满足自己的需要。8.2Java集合JavaSE5.0增加了泛型支持很大程度上是为了让集合能记住其元素的数据类型。在没有泛型之前,一旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型。把所有元素都当成Object类型处理
7、。当程序从集合中取出元素后,需要进行强制类型转换,这种转化使得程序代码臃肿,转换不当会引发ClassCastException异常。JavaSE5.0改写了Java集合框架中全部接口和类,增加了泛型支持。8.2Java集合8.2.1Java集合概述8.2Java集合8.2.1Java集合概述8.2Java集合8.2.1Java集合概述8.2Java集合8.2.1Java集合概述Java提供了非常复杂的集合类型,不易理解、掌握,通过一步简化Java集合框架非常有助于理解Java集合框架。从简化的Java集合
8、框架图中看出,Java集合框架主要提供了3种类型的集合和1个迭代接口:1.Set(集):集合中的对象无排列顺序,并且没有重复的对象。它的有些实现类能对集合中的对象按照特定的方式进行排序。set是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。2.List(队列):集合中的对象按照索引的顺序排列,可以有重复的对象
此文档下载收益归作者所有