Java程序设计:031001_泛型入门

上传人:公**** 文档编号:569266175 上传时间:2024-07-28 格式:PPT 页数:11 大小:62.50KB
返回 下载 相关 举报
Java程序设计:031001_泛型入门_第1页
第1页 / 共11页
Java程序设计:031001_泛型入门_第2页
第2页 / 共11页
Java程序设计:031001_泛型入门_第3页
第3页 / 共11页
Java程序设计:031001_泛型入门_第4页
第4页 / 共11页
Java程序设计:031001_泛型入门_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Java程序设计:031001_泛型入门》由会员分享,可在线阅读,更多相关《Java程序设计:031001_泛型入门(11页珍藏版)》请在金锄头文库上搜索。

1、 MLDN 软件教学研件教学研发部部JAVA 应用开发详解应用开发详解泛型 泛型入门本章目标掌握泛型的产生意义掌握泛型的基本使用了解泛型的警告信息及泛型的擦除为什么要有泛型?现在有以下的实例要求:现在要求设计一个可以表示出坐标点的类,坐标由X和Y组成,坐标的表示方法有以下三种:整数表示:x = 10、y = 20 小数表示:x = 10.5、y = 20.6字符串表示:x = 东经180度、y = 北纬210度 问:问:此类该如何设计? 题目分析一看到这样的要求,读者首先就要考虑到,必须建立好一个表示坐标点的类 Point,此类中有两个属性分别用来表示x坐标和y坐标,但是x和y中所保存的数据类

2、型会有三种(int、float、String),而要想使用一个类型可以同时接收这样的三种类型数据,则现在只能使用Object,因为Object类可以接收任何类型的数据,都会自动发生向上转型操作,这样三种数据类型将按以下的方式进行转换: 数字(int) 自动装箱成Integer 向上转型使用Object接收 小数(float) 自动装箱成Float 向上转型使用Object接收 字符串(String) 向上转型使用Object接收 设计Point类 class Point private Object x;/ 表示x坐标private Object y;/ 表示y坐标public void se

3、tX(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 - Objectp.setY(北纬210度) ;/ String - Obj

4、ectint x = (Integer)p.getX() ;/ 取出数据int y = (Integer)p.getY() ;/ 取出数据 此处出现了类转换错误此处出现了类转换错误System.out.println(整数表示,整数表示,X坐标为:坐标为: + x) ;System.out.println(整数表示,整数表示,Y坐标为:坐标为: + y) ;泛型泛型可以解决数据类型的安全性问题,它主要的原理,是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化的时候只要指定好需要的类型即可。 泛型类定义格式:访问权限 class 类名称访问权

5、限 泛型类型标识 变量名称 ;访问权限 泛型类型标识 方法名称() ;访问权限 返回值类型声明 方法名称(泛型类型标识 变量名称) ;泛型对象定义 类名称 对象名称 = new 类名称() ;声明泛型 class Point / 此处可以是任意的标识符号,T是type的简称private T var;/ 此变量的类型由外部决定public T getVar() / 返回值的类型由外部指定return var;public void setVar(T var) / 设置的类型由外部指定this.var = var;public class GenericsDemo05 public static

6、 void main(String args) Point p = new Point() ;/ 里面的var类型为Integer类型p.setVar(30) ;/ 设置数字,自动装箱System.out.println(p.getVar() * 2);/ 计算结果,按数字取出设置泛型的要求在泛型的指定中,是无法指定基本数据类型的,必须设置成一个类,这样在设置一个数字的时候就必须使用包装类,而在JDK 1.5之后提供了自动装箱的操作,操作时也不会太复杂。 泛型应用中的构造方法 构造方法可以为类中的属性初始化,那么如果类中的属性通过泛型指定,而又需要通过构造设置属性内容的时候,那么构造方法的定义

7、与之前并无不同,不需要像声明类那样指定泛型。 使用格式:访问权限 构造方法 ( 参数名称)指定多个泛型类型 如果一个类中有多个属性需要使用不同的泛型声明,则可以在声明类的时候指定多个泛型类型。 class Notepad / 此处指定两个泛型类型private K key;/ 此变量的类型由外部决定private V value;/ 此变量的类型由外部决定public K getKey() return key;public void setKey(K key) this.key = key;public V getValue() return value;public void setValue(V value) this.value = value;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号