这是我必须回答的作业问题:实现一个类SodaCan
,其构造函数接收高度和直径或汽水罐。供应方法getVolume
和getSurfaceArea
。提供一个SodaCanTester
课程来测试你的课程。
这是我对SodaCan
类的代码。
public class SodaCan
{
private double Height;
private double Radius;
public SodaCan(double h, double d) {
Height = h;
Radius = d/2;
}
public double getVolume()
{
return Math.PI * Height * Math.pow(Radius, 2);
}
public double getSurfaceArea()
{
return (2 * Math.PI * Radius * Height) +
(2 * Math.PI * Math.pow(Radius, 2));
}
}
这是我对SodaCanTester
类的代码。
public class SodaCanTester
{
public static void main(String[] args)
{
SodaCan cylinder = new SodaCan();
cylinder.enterHeight(5);
cylinder.enterRadius(8);
System.out.println("Volume: " + getVolume());
System.out.println("Expected Volume: 1005.31");
System.out.println("Surface Area: " + getSurfaceArea());
System.out.println("Expected Surface Area: 653.45");
}
}
当我尝试编译测试器类时,我得到了构造函数的错误:
SodaCan cylinder = new SodaCan();
那说:
“SodaCan类中的构造函数SodaCan无法应用于给定类型”。
我做错了什么,我该如何解决这个问题?
答案 0 :(得分:1)
因为,您的班级SodaCan
public SodaCan(double h, double d) {
Height = h;
Radius = d/2;
}
如果你想让下面的代码工作,你需要 明确地 声明no-arg构造函数
SodaCan cylinder = new SodaCan();
<强> 被修改== 强>
您的代码应如下所示
public SodaCan(double h, double d) {
Height = h;
Radius = d/2;
}
public SodaCan(){}