泛型与集合

    ###集合是一个用来存放对象的容器,java集合类存放在java.util包中。特别注意的是,集合里面只能存放对象,或者说是对象的引用,对象本身存放在堆内存中;集合可以存放不同类型,不限数量的类型,这是因为如此,集合的操作具体到某一个数据类型的时候,需要强制转换。于是存在安全问题,
  ###  泛型是一种参数类型,它可以是除了基本数据类型的任意类型的数据,例如对象或者接口。使用泛型可以用来建立安全的集合框架,它可以限制集合中存放元素的类型。例如:class People<E>,People是泛型类的名称,E是其中的泛型,它可以指定任何数据类型,除了基类型;E e ;声明一个对象,没有类型,可以通过引用传值传递一个具体类型的对象引用给e,这个时候e就只能是这种类型的数据了。
 ###   下面是一个具体的代码:
package 计算体积_泛型;

class Cone<E>{
	double height;
	E bottom;               //用泛型类E声明对象bottom;
	public Cone (E b){
		bottom = b;
	}
	public void setHeight(double h){
		height = h;
	}
	public double computerVolume(){
		String s = bottom.toString();          //泛型变量只能调用从Objict继承或重写的方法。
		double area = Double.parseDouble(s);
		return 1.0/3.0*area*height;
	}
}

class Rect{
	double sideA,sideB,area;
	Rect(double a,double b){
		sideA = a;
		sideB = b;
	}
	public String toString (){
		area = sideA*sideB;
		return ""+area;
	}
}
  
class Circle{
	double area,radius;
	Circle(double r){
		radius = r;
	}
	public String toString (){
		area = radius*radius*Math.PI;
		return ""+area;
	}
}

public class Example_1 {
	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<Circle> coneTwo = new Cone<Circle>(circle);            //创建一个方锥对象。
		coneTwo.setHeight(98);
		System.out.println(coneTwo.computerVolume());
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值