资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java语言程序设计语言程序设计第五章第五章 Java高级特性:高级特性:泛型与枚举泛型与枚举 讲授人:傅晓阳 教授上章回顾上章回顾1.请列举四种主要的字节流与字符流类。2.File类与FileReader的区别www.jluzh.comwww.jluzh.comDavidFuDavidFu本章课程纲要本章课程纲要枚举枚举泛型泛型装箱与拆箱装箱与拆箱www.jluzh.comwww.jluzh.comDavidFuDavidFu泛型泛型njava语言中引入泛型的主要目的是可以建立具有语言中引入泛型的主要目的是可以建立具有类型安全的数据结构,如散列表(类型安全的数据结构,如散列表(Hashtable)、)、矢量容器(矢量容器(Vetctor)等数据结构。)等数据结构。n在使用泛型类建立数据结构时,不必进行强制类型在使用泛型类建立数据结构时,不必进行强制类型转换。转换。njava语言从语言从jdk1.5开始支持泛型,简化集合类中开始支持泛型,简化集合类中的类型转换过程。的类型转换过程。 www.jluzh.comwww.jluzh.comDavidFuDavidFu泛型泛型nClass HashtablenObject put (Object key, Object value)nObject get(Object key)nn参见例题7-1,7-2www.jluzh.comwww.jluzh.comDavidFuDavidFu定义泛型类与泛型方法定义泛型类与泛型方法 n实现泛型:给类和接口添加类型参数实现泛型:给类和接口添加类型参数 n泛型类泛型类(generic class):一个被类型参数化了:一个被类型参数化了的类或接口。的类或接口。 n泛型类定义格式为:泛型类定义格式为:n类访问修饰符 class npublic class ArrayList n其中ItemType是泛型类ArrayList的类型参数。 www.jluzh.comwww.jluzh.comDavidFuDavidFu定义泛型类与泛型方法定义泛型类与泛型方法 n普通方法定义格式为:普通方法定义格式为:npublic void testShape(int a, int b) n泛型方法定义格式为:泛型方法定义格式为:n类访问修饰符 返回类型 方法名称(参数列表) npublic static void testGenerics(int a) n对于泛型方法中的参数定义与泛型类相同。两个泛型方法不能有相同的名称和参数类型。www.jluzh.comwww.jluzh.comDavidFuDavidFu定义泛型类与泛型方法定义泛型类与泛型方法 v泛型类的实例化格式为:泛型类的实例化格式为:v泛型类名称泛型类名称 实例对象实例对象=new泛型类名称泛型类名称( );vArrayList al=new ArrayList( );v具体程序如下:具体程序如下:vclass Hashtable v .v Value put(Key k, Value v) .v Value get(Key k) .vwww.jluzh.comwww.jluzh.comDavidFuDavidFu类型参数的基本用法类型参数的基本用法 n参数类型变量同样具有继承性,并可以扩展相应的接参数类型变量同样具有继承性,并可以扩展相应的接口。口。n类型参数变量的表示格式为:类型参数变量的表示格式为:n类型参数变量n类型参数变量 extends 父类n类型参数变量 extends 父类1&接口1&接口2& 接口nn参见例题参见例题7-3、7-4、7-5www.jluzh.comwww.jluzh.comDavidFuDavidFu本章课程纲要本章课程纲要枚举枚举 泛型泛型装箱与拆箱装箱与拆箱www.jluzh.comwww.jluzh.comDavidFuDavidFu枚举枚举 n枚举枚举(enumeration)是是java中一个特殊的类,采中一个特殊的类,采用枚举类型可以使程序更贴近面向对象的编程思想,用枚举类型可以使程序更贴近面向对象的编程思想,从而使程序设计更为简洁明了从而使程序设计更为简洁明了n所有枚举都是所有枚举都是java.lang.Enum的隐式子类。的隐式子类。n创建枚举类型的主要目的是为了定义一些枚举常量。创建枚举类型的主要目的是为了定义一些枚举常量。nJDK1.5以后的新枚举定义方式以后的新枚举定义方式nPublic enum MyColornRED;nYELLOW;nBLUE;n www.jluzh.comwww.jluzh.comDavidFuDavidFu枚举枚举 njava内置枚举的优点如下:内置枚举的优点如下:n枚举类型是安全的,不必建立枚举变量和枚举中整数常量的对应关系。n枚举是一个类,因此也能有域变量和方法,并且可以实现接口。n枚举能够在switch 语句中以一种直接方式进行访问。n枚举的基本定义格式为:枚举的基本定义格式为:n枚举类型访问修饰符 enum 枚举类型名称nn枚举常量1,枚举常量2,枚举常量nnwww.jluzh.comwww.jluzh.comDavidFuDavidFu本章课程纲要本章课程纲要枚举枚举泛型泛型装箱与拆箱装箱与拆箱www.jluzh.comwww.jluzh.comDavidFuDavidFu装箱与拆箱装箱与拆箱 njava语言中,经常需要进行基本数据类型与引用数语言中,经常需要进行基本数据类型与引用数据类型的转换。每个基本数据类型都对应一个引用据类型的转换。每个基本数据类型都对应一个引用封装类。封装类。n在在JDK1.5版本颁布后,为了摆脱繁琐的转换过程,版本颁布后,为了摆脱繁琐的转换过程,采用自动装箱采用自动装箱/拆箱拆箱(boxing/unboxing)转换,转换,用于简化基本数据类型与引用类型的转换。用于简化基本数据类型与引用类型的转换。 www.jluzh.comwww.jluzh.comDavidFuDavidFu装箱与拆箱装箱与拆箱 n无自动装箱无自动装箱/拆箱的例子:拆箱的例子:nFloat fObject;nfloat fvalue;nArrayList arrayList=new ArrayList( );nfvalue=15.3f;nfObject =new Flaot(fvalue);narrayList.put(fObject); www.jluzh.comwww.jluzh.comDavidFuDavidFu装箱与拆箱装箱与拆箱 n使用自动装箱使用自动装箱/拆箱方法可以简化以上的程序:拆箱方法可以简化以上的程序:nfloat fvalue;nArrayList arrayList=new ArrayList( );nfvalue=15.3f;narrayList.put(fvalue);n参见例题参见例题7-7www.jluzh.comwww.jluzh.comDavidFuDavidFuwww.jluzh.com
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号