java核心课件2-第1章

java核心课件2-第1章

ID:45237528

大小:209.00 KB

页数:20页

时间:2019-11-11

java核心课件2-第1章_第1页
java核心课件2-第1章_第2页
java核心课件2-第1章_第3页
java核心课件2-第1章_第4页
java核心课件2-第1章_第5页
资源描述:

《java核心课件2-第1章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java2核心技术Ⅱ主讲教师:殷黎E_mail:yl_zwn@yahoo.com.cn本书课程安排第1章泛型第2章枚举第3章集合框架第4章实用类第5章网络编程基础第6章JDBC第7章JavaBean第8章Swing第9章RMI第1章泛型了解泛型相关概念;会创建泛型类和泛型方法;了解通配符和受限泛型;能熟练使用泛型类。1.1泛型概述首先分析、使用1-3页的例子程序;这是一个实现可动态扩展的数组的程序,且能存放任意类型的数据;从使用中可以看到,存放的数据取出来用时,必须强制转化为它的实际类型;这样不能保证程序类型的安全,增加了程序出错的几率,而且带

2、来了麻烦;因此java中引入了“泛型”的概念。publicclassObjectGroup{privateObject[]elements;privateintsize;publicObjectGroup(){init();}privatevoidinit(){elements=newObject[10];size=0;}publicvoidadd(Objectobj){if(size>=elements.length){Object[]temp=newObject[elements.length*2];System.arraycopy(ele

3、ments,0,temp,0,elements.length);elements=temp;}elements[size]=obj;size++;}publicvoidclear(){init();}publicObject[]getElements(){Object[]temp=newObject[size];System.arraycopy(elements,0,temp,0,size);returntemp;}publicObjectget(intindex){returnelements[index];}publicintgetSize

4、(){returnsize;}}泛型(Generics)本质上就是提供类型的”类型参数”,它们也被称为参数化类型(parameterizedtype)或参量多态(parametricpolymorphism);也指具有在多种数据类型上皆可操作的含义;声明时用参数化类型代替,使用时指定具体类型;GJ(GenericJava)是对Java语言的一种扩展,用GJ编写的程序看起来和普通Java程序基本相同,只不过多了一些参数化的类型同时少了一些类型转换;实际上,编译时这些GJ程序也是首先被转化成一般的不带泛型的Java程序后再进行处理的;泛型的特点:类

5、型安全、向后兼容、层次清晰、性能收益1.2泛型类泛型类就是具有一个或多个类型参数的类;1-4页代码中尖括号中的内容就代表类型参数,多个类型参数用“,”隔开;类型参数就跟在方法中普通的参数一样。就像一个方法有“形参”来描述它操作的参数的种类,一个泛型也有“形式类型参数”;当一个方法被调用,“实参”替换“形参”,方法被执行;当一个泛型声明被调用,“实际类型参数”取代“形式类型参数”;类型参数通常用单个大写字母命名;一般:E表示集合的元素类型,T表示任意类型,K,V表示表的键和值;类型参数一定是类类型;publicclassGenericGroup<

6、E>{privateE[]elements;privateintsize;publicGenericGroup(){init();}privatevoidinit(){elements=(E[])newObject[10];size=0;}publicvoidadd(Eobj){if(size>=elements.length){E[]temp=(E[])newObject[elements.length*2];System.arraycopy(elements,0,temp,0,elements.length);elements=temp;}

7、elements[size]=obj;size++;}publicvoidclear(){init();}publicObject[]getElements(){E[]temp=(E[])newObject[size];System.arraycopy(elements,0,temp,0,size);returntemp;}publicEget(intindex){returnelements[index];}publicintgetSize(){returnsize;}}1.2.1泛型类的使用声明:class类名<类型参数>{//类体}使用:

8、类名<实际类型>变量名=new类名<实际类型>();1.2.2泛型类的局限类型参数不能实例化:newE();//error不能实例化类型参数的数组:E

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。