下载此文档

031001 泛型入门.ppt


文档分类:金融/股票/期货 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
031001_泛型入门第10章:泛型
——泛型入门
软件教学研发部
本章目标
掌握泛型的产生意义
掌握泛型的基本使用
了解泛型的警告信息及泛型的擦除
为什么要有泛型?
现在有以下的实例要求:
现在要求设计一个可以表示出坐标点的类,坐标由X和Y组成,坐标的表示方法有以下三种:
整数表示:x = 10、y = 20
小数表示:x = 、y =
字符串表示:x = "东经180度"、y = "北纬210度"
问:此类该如何设计?
题目分析
一看到这样的要求,读者首先就要考虑到,必须建立好一个表示坐标点的类—— Point,此类中有两个属性分别用来表示x坐标和y坐标,但是x和y中所保存的数据类型会有三种(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 setX(Object x) {
= x;
}
public void setY(Object y) {
= y;
}
public Object getX() {
return ;
}
public Object getY() {
return ;
}
};
代码的问题
public class GenericsDemo04 {
public static void main(String[] args) {
Point p = new Point() ;
(10) ; // 利用自动装箱操作:int --> Integer --> Object
("北纬210度") ; // String --> Object
int x = (Integer)() ; // 取出数据
int y = (Integer)() ; // 取出数据此处出现了类转换错误
("整数表示,X坐标为:" + x) ;
("整数表示,Y坐标为:" + y) ;
}
}
泛型
泛型可以解决数据类型的安全性问题,它主要的原理,是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化的时候只要指定好需要的类型即可。
泛型类定义格式:
[访问权限] class 类名称<泛型类型1,泛型类型2,…泛型类型3>{
[访问权限] 泛型类型标识变量名称;
[访问权限] 泛型类型标识方法名称(){} ;
[访问权限] 返回值类型声明方法名称(泛型类型标识变量名称){} ;}
泛型对象定义
类名称<具体类> 对象名称= new 类名称<具体类>() ;
声明泛型
class Point<T> { // 此处可以是任意的标识符号,T是type的简称
private T var; // 此变量的类型由外部决定
public T getVar() { // 返回值的类型由外部指定
return var;
}
public void setVar(T var) {// 设置的类型由外部指定
= var;
}
};
public class GenericsDemo05 {
public static void main(String[] args) {
Point<Integer> p = new Point<Integer>() ; // 里面的var类型为Integer类型
(30) ; // 设置数字,自动装箱
(() * 2); // 计算结果,按数字取出
}
}

031001 泛型入门 来自淘豆网www.taodocs.com转载请标明出处.