《Java程序设计及应用》课件04_第1页
《Java程序设计及应用》课件04_第2页
《Java程序设计及应用》课件04_第3页
《Java程序设计及应用》课件04_第4页
《Java程序设计及应用》课件04_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容提要为什么要引入泛型定义简单的泛型泛型和子类继承泛型的通配符泛型方法和类型推断为什么要引入泛型从JDK1.5开始引入了Generics(泛型)。这是因为在对实例对象作向下类型强制转换时,存在潜在的类型不匹配的问题。尤其在使用集合(详见第8章)对象时,更是如此。为了解决这样的问题,Java引入了泛型。简言之,引入泛型是为了提高代码的安全性和编程的简单性。定义简单的泛型泛型,就是把引用类型进行参数化,注意是引用类型,不是基本类型。在定义一个泛型类的时候,在“<>”之间定义泛型参数。例程泛型参数不能用于使用static修饰的成员变量、成员方法。这是因为泛型参数是属于动态的,与static不相容。泛型和子类继承如果Foo是Bar的一个子类型(子类或者子接口),而G是某种泛型声明,那么G<Foo>是G<Bar>的子类型并不成立。泛型参数可以继承其他的类和接口,如果有多个接口或类可以用&符号连接(包括三种情况:多个纯接口、多个纯类、多个接口和类混合),&是“和”、“并且”的意思。通过extends限制了泛型参数的范围。注意:这里泛型的extends与Java接口或类的extends不是一个概念,泛型中的extends的含义是左边的操作数或者是右边的类型或是右边的子孙类型,即右边的类型是左边类型的上界。泛型的通配符List<?extendsNumber>表示类型变量是Number或者Number的子类。这个就是所谓的上界通配符,同样,如果要表示类型变量是Number或者Number的super类型,可以使用下界通配符:List<?superNumber>通配符List<?>等价于:List<?extendsObject>通配符只能用于成员变量、局部变量、参数类型和返回类型,不能用于命名类和接口。泛型方法和类型推断泛型方法就是把方法的参数或返回值的类型进行参数化,声明一个泛型方法的方式如下:修饰符<T>Tfunc(Tobj){

returnobj;

}

修饰符<TextendsA>Tmethod(Tobj){

returnobj;

}小结泛型给实际编程带来了简便,泛型的类型参数只能是引用类型,不能是基本类型。本章从定义简单的泛型、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论