Java 1.5的范型~~


泛型(Generics)是Sun公司在SDK1.5中推出的,其主要目的是可以建立具有类型安全的集
合框架,如链表、散列映射等数据结构
这里是Sun的范型文档  http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

1.泛型类声明
    可以使用"class 名称<泛型列表>"声明一个类,为了和普通的类有所区别,这样声明的
类称作泛型类,如:
     class A<E >
其中A是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它
可以是任何对象或接口,但不能是基本类型数据。也可以不用E表示泛型,使用任何一个合
理的标识符都可以,但最好和我们熟悉的类型名称有所区别。泛型类声明时,"泛型列表"给
出的泛型可以作为类的成员变量的类型、方法的类型以及局部变量的类型。
    泛型类的类体和和普通类的类体完全类似,由成员变量和方法构成,如:
class Chorus<E,F>
{
   void makeChorus(E person,F yueqi)
   {
       yueqi.toString();
       person.toString();
   }
}

2.使用泛型类声明对象
    使用泛型类声明对象时,必须要指定类中使用的泛型的具体实际类型。例如:
  Chorus<Student,Button>  model
  model  =  new Chorus<Student,Button> ();
泛型类中的泛型数据只能调用Object类中的
方法
在下面的例子中,我们声明了一个泛型类:锥,一个锥对象计算体积时,只关心它的底是
否能计算面积,并不关心底的类型。
例:
class 锥<E>
{
   double height;
   E  bottom;
   public 锥(E b)
   {
      bottom=b;
   }
   public void computerVolume()
   {
      String s=bottom.toString();
      double area=Double.parseDouble(s);
      System.out.println("体积是:"+1.0/3.0*area*height);
   }
}
class Circle
{
   double area,radius;
   Circle(double r)
   {
      radius=r;
   }
   public String toString()
   {
      area=radius*radius*Math.PI;
      return ""+area;
   }
}
class Rectangle
{
   double sideA,sideB,area;
   Rectangle(double a,double b)
   {
      sideA=a;
      sideB=b;
   }
   public String toString()
   {
      area=sideA*sideB;
      return ""+area;
   }
}
class Example
{
   public static void main(String args[])
   {
       Circle circle=new Circle(10);
       锥<Circle> coneOne=new 锥<Circle>(circle);       //创建一个(圆)锥对象co
neOne。
       coneOne.height=30;
       coneOne.computerVolume();
       Rectangle rect=new Rectangle(10,20);
       锥<Rectangle> coneTwo=new 锥<Rectangle>(rect);   //创建一个(方)锥对象co
neTwo。
       coneTwo.height=10;
       coneTwo.computerVolume();
   }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值