请用泛型完成该题目,输入为底面圆的半径和圆锥的高(两个整型),输出为该圆锥的体积(保留小数点后两位)。注:在涉及园的计算中请用Math.PI。
函数接口定义:
请仔细阅读主程序中的相关调用参数。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
int i,j;
Scanner sc=new Scanner(System.in);
i=sc.nextInt();
j=sc.nextInt();
sc.close();
Circle circle=new Circle(i);
Cone<Circle> coneOne=new Cone<Circle>(circle);//创建一个(圆)锥对象
coneOne.setHeight(j);
System.out.printf("%.2f\n",coneOne.computerVolume());
}
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
5 16
结尾无空行
输出样例:
在这里给出相应的输出。例如:
418.88
结尾无空行
答案代码如下:
class Circle {
int r;
public Circle(){}
public Circle(int i){
r = i;
}
}//定义一个圆类
class Cone <T>{
T t;//泛型对象(泛型变量)
int h;//泛型类圆锥的高
public Cone(T b)
{
t = b;
}//带参构造,初始化t
public void setHeight(int g)
{
h = g;
}
public double computerVolume()
{
return ((Circle)t).r * ((Circle)t).r * Math.PI * h * 1/3;
}//注意这里有个强制类型转化,将泛型t强制转换为圆类对象,这样才可以引用对象中的成员变量r
}
在创建泛型类的时候,当类中要引用具体的对象的成员变量或者方法的时候,一定要注意类型的转换,因为一个泛型是一个不确定的数据类型,不能引用任何方法或者变量,要将泛型强制转换成一个具体的数据类型,方可引用其可以引用的成员方法或者成员变量