《Java开发实战经典》教师讲解031001 泛型入门.pptVIP

《Java开发实战经典》教师讲解031001 泛型入门.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA 应用开发详解 第10章:泛型 —— 泛型入门 本章目标 掌握泛型的产生意义 掌握泛型的基本使用 了解泛型的警告信息及泛型的擦除 为什么要有泛型? 现在有以下的实例要求: 现在要求设计一个可以表示出坐标点的类,坐标由X和Y组成,坐标的表示方法有以下三种: 整数表示:x = 10、y = 20 小数表示:x = 10.5、y = 20.6 字符串表示:x = 东经180度、y = 北纬210度 问:此类该如何设计? 题目分析 一看到这样的要求,读者首先就要考虑到,必须建立好一个表示坐标点的类 —— Point,此类中有两个属性分别用来表示x坐标和y坐标,但是x和y中所保存的数据类型会有三种(int、float、String),而要想使用一个类型可以同时接收这样的三种类型数据,则现在只能使用Object,因为Object类可以接收任何类型的数据,都会自动发生向上转型操作,这样三种数据类型将按以下的方式进行转换: 数字(int) ? 自动装箱成Integer ? 向上转型使用Object接收 小数(float) ? 自动装箱成Float ? 向上转型使用Object接收 字符串(String) ? 向上转型使用Object接收 设计Point类 代码的问题 泛型 泛型可以解决数据类型的安全性问题,它主要的原理,是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化的时候只要指定好需要的类型即可。 泛型类定义格式: [访问权限] class 类名称泛型类型1,泛型类型2,…泛型类型3{ [访问权限] 泛型类型标识 变量名称 ; [访问权限] 泛型类型标识 方法名称(){} ; [访问权限] 返回值类型声明 方法名称(泛型类型标识 变量名称){} ;} 泛型对象定义 类名称具体类 对象名称 = new 类名称具体类() ; 声明泛型 设置泛型的要求 在泛型的指定中,是无法指定基本数据类型的,必须设置成一个类,这样在设置一个数字的时候就必须使用包装类,而在JDK 1.5之后提供了自动装箱的操作,操作时也不会太复杂。 泛型应用中的构造方法 构造方法可以为类中的属性初始化,那么如果类中的属性通过泛型指定,而又需要通过构造设置属性内容的时候,那么构造方法的定义与之前并无不同,不需要像声明类那样指定泛型。 使用格式: [访问权限] 构造方法 ([泛型类型 参数名称]){} 指定多个泛型类型 如果一个类中有多个属性需要使用不同的泛型声明,则可以在声明类的时候指定多个泛型类型。 泛型的安全警告 在泛型应用中最好在声明类的时候指定好其内部的数据类型,例如:“InfoString”,但也可以不指定类型,这样一来用户在使用这样的类时,就会出现不安全的警告信息。 下一章内容 E-MAIL:mldnqa@163.com ? MLDN 软件教学研发部 MLDN 软件教学研发部 class Point { private Object x; // 表示x坐标 private Object y; // 表示y坐标 public void setX(Object x) { this.x = x; } public void setY(Object y) { this.y = y; } public Object getX() { return this.x; } public Object getY() { return this.y; } }; public class GenericsDemo04 { public static void main(String[] args) { Point p = new Point() ; p.setX(10) ; // 利用自动装箱操作:int -- Integer -- Object p.setY(北纬210度) ; // String -- Object int x = (Integer)p.getX() ; // 取出数据 int y = (Integer)p.getY() ; // 取出数据 ?此处出现了类转换错误 System.out.println(整数表示,X坐标为: + x) ; System.out.println(整数表示,Y坐标为: + y) ; } } class PointT { // 此处可以是任意的标识符号,T是type的简称 private T var; // 此变量的类型由外部决定 public T getVar() { // 返回值的类型由外部指定 return var; } publ

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档