JAVA核心编程技术-前十章8.ppt
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
JAVA核心编程技术 - 泛型和集合 JAVA核心编程技术是指Java语言的核心编程技术,其中泛型和集合是Java编程中非常重要的概念。泛型是Java SE 5.0的新特性,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 在Java中,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。但是与方法中的参数不同,泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 Java泛型基本概念 ------------------- ### 1. 设置通配符的上限 在Java 5.0中,引入泛型后extends关键字有了另外的含义,使用extends关键字可以设置泛型通配符的上限,形式如下: ``` <? extends A > ``` 其中的通配符“?”表示一个受限制的通配符,此处的“?”意为:通配符“?”只能是 A类及其子类作为泛型参数的泛型的父类,而不再是任意类型参数泛型的父类。 ### 2. 设置Java泛型通配符的下限 设置Java泛型通配符下限的关键字是super,此处的关键字super不再表示Java继承中的超类的概念。设置Java泛型通配符下限的形式如下: ``` <? super A> ``` 其中泛型通配符“?”表示一个受限的泛型通配符,意为:通配符“?”只能是 A 类及其父类的作为参数的泛型的父类,而不再是任意类型作为参数的泛型的父类。 Java泛型类型通配符 ------------------- ### 1. 泛型方法 泛型不仅应用于整个类上。同样可以在类中包含参数化方法,而这个方法所在的类可以是泛型类,也可以不是泛型类。也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。 泛型方法使得该方法能够独立于类而产生变化。以下是一个基本的指导原则:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使程序更简单明了。 ### 2. 泛型方法的定义格式 泛型方法的定义格式如下: ``` 访问权限修饰符 <T,S,…> 返回类型 方法名(形参列表){ } ``` 与泛型类、泛型接口中的泛型类型参数不同,泛型方法中定义的泛型形参的作用域限于该方法内。而泛型类或泛型口中定义的泛型形参的作用域为整个类或接口。 此外泛型方法在使用时无需传入泛型实参,这与泛型类和泛型接口也不同。 Java泛型擦出和转换 ------------------- ### 1. 泛型擦出 Java语言允许在使用泛型类时不指定泛型类型参数。如果没有为泛型类指定类型参数,则该类型参数被退化成一个raw type(原始类型),退化后,默认成该类型参数声明时的第一个上限类型。 ### 2. 转换 当把泛型类的实例赋给一个非泛型引用变量时,则泛型类的泛型参数被檫除。退化成非泛型实例。 Java集合 ------------- Java中的集合框架提供了一套设计优良的接口和类,使程序员操作成批的数据或对象元素极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的。并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。 Java集合概述 ---------------- ### 1. Java集合类型 Java提供了非常复杂的集合类型,不易理解、掌握,通过一步简化Java集合框架非常有助于理解Java集合框架。从简化的Java集合框架图中看出,Java集合框架主要提供了3种类型的集合和1个迭代接口: * Set(集):集合中的对象无排列顺序,并且没有重复的对象。 * List(列表):集合中的对象有排列顺序,可以有重复的对象。 * Map(映射):集合中的对象是键值对,键是唯一的,可以有重复的值。 Java SE 5.0增加了泛型支持很大程度上是为了让集合能记住其元素的数据类型。在没有泛型之前,一旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型。把所有元素都当成Object类型处理。当程序从集合中取出元素后,需要进行强制类型转换,这种转化使得程序代码臃肿,转换不当会引发ClassCastException异常。
剩余20页未读,继续阅读
- 粉丝: 3814
- 资源: 59万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助