- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10 Java泛型
Java泛型(generics)是JDK 5中引入的一个新特性,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。
10.1 为什么需要泛型
现在我要设计一个可以表示坐标的点类,坐标由x和y组成。可是不同的人,可能想要知道的坐标不一样。有人想要坐标用整型表示;有人想要坐标用小数表示;有有人想要坐标用字符串表示,如下:
A这个人想要看到整型的坐标,例如:(10, 20)。所以我们要定义一个IntPoint类如下:
//IntPoint.java
package com.itjob;
public class IntPoint {
private int x;
private int y;
public IntPoint(){
}
public IntPoint(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
B这个人想要看到小数的坐标,例如(10.5, 20.6)。所以我们要定义一个DoublePoint类如下:
//DoublePoint.java
package com.itjob;
public class DoublePoint {
private double x;
private double y;
public DoublePoint(){
}
public DoublePoint(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}
C这个人想要看到字符串的坐标。例如:(东经180度, y=北纬120度),所以我们要定义一个StringPoint类如下:
//StringPoint.java
package com.itjob;
public class StringPoint {
private String x;
private String y;
public StringPoint(){
}
public StringPoint(String x, String y) {
this.x = x;
this.y = y;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
使用过程如下:
//TestPoint.java
package com.itjob;
public class TestPoint {
public static void main(String[] args) {
IntPoint ptInt = new IntPoint(10, 20);
System.out.println(( + ptInt.getX() + , + ptInt.getY() + ));
DoublePoint ptDouble = new DoublePoint(10.5, 20.6);
System.out.println(( + ptDouble.getX() + , + ptDouble.getY() + ));
StringPoint ptString = new StringPoint(东经180度, 北纬120度);
System.out.println(( + ptString.getX() + , + ptString.getY() + ));
}
}
我们发现其实上面的
文档评论(0)