黑马程序员_泛型
来源:互联网 发布:怎样利用网络赚钱 编辑:程序博客网 时间:2024/05/29 16:44
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------
泛型主要的推出主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。
泛型类声明
可以使用“clss名称<f泛型列表>”声明一个类,为了和普通类有所区别,这样声明的类称作泛型类,如:class people<E>
其中People是泛型类的名称,E是其中的泛型,也就是说,并没有制定E是何种类型的数据,它可以是任何对象或接口,但不能是基本数据类型。
泛型类的类体和普通类的类体完全类似,由成员变量和方法构成,如涉及一个锥,锥只关心它的滴面积是多少,并不关心底的具体形状,它所关心的是用底面积和高计算出自身的体积,因此,可以用泛型作为自己的底,代码可以是:
class Cone<E>{
double height;
E bottom;
public Cone(E b){
bottom = b;
}
}
使用泛型类声明对象
和普通类相比,泛型类声明和创建对象时,类名后多了一对“<>”,而且必须要用具体的类型替换“<>”中的泛型。
以下例子声明了一个泛型类Cone,一个Cone对象计算体积时只关心它的底是否能计算面积,并不关心底的类型。
public class Cone<E>{
double height;
E bottom;
public Cone(E b){
bottom = b;
}
public void serHeight(double h){
height = h;
}
public double computerVolume(){
String s = bottom.toString();
double area = Double.parseDouble(s);
return 1.0 / 3.0 * area * height;
}
}
public class Rect{
double sideA, sideB, area;
Rect(double a, double b){
sideA = a;
sideB = b;
}
public String toString() { //重写Object类的toString方法
area = sideA * sideB;
return "" + area;
}
}
public class Circle{
double area, radius;
Circle(double r){
radius = r;
}
public String toString(){
area = radius * radius * Math.PI;
return "" + area;
}
}
public class Test{
public static void main(String args[]){
Circle circle = new Circle(10);
Cone <Circle> coneOne = new Cone<Circle>(circle); //创建一个圆锥对象
coneOne.setHeight(16);
System.out.println(coneOne.computerVolume());
Rect rect = new Rect(15, 23);
Cone<Rect> coneTwo = new Cone<Rect>(rect); //创建一个方锥对象
coneTwo.setHeight(98);
System.out.println(coneTwo.computerVolume));
}
}
运行结果为:
1675.5160819145563
11270.0
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_泛型
- 黑马程序员_<<泛型>>
- 黑马程序员_泛型
- 关于10053 trace中的UNCOMPBKTS和ENDPTVALS
- Queue is not empty
- 一口一口吃掉struts(七)——ActionForward知多少
- Objective-C--欧几里得算法
- C#实现图片压缩方法
- 黑马程序员_泛型
- 【发布软件】Visual Studio工具:自动递增版本号
- Oracle CBO术语大集合
- linux下安装rtx
- 给Oracle年轻的初学者的几点建议
- Hyper-V Centos Linux Integration Services
- 作图工具
- 获得文件上传路径,下载路径。
- deploy.wsdd成功后返还空白页面 (只有 And now... Some Services )