测试程序类构造函数错误

时间:2017-09-30 04:22:19

标签: java

这是我必须回答的作业问题:实现一个类SodaCan,其构造函数接收高度和直径或汽水罐。供应方法getVolumegetSurfaceArea。提供一个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无法应用于给定类型”。

我做错了什么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

因为,您的班级SodaCan

中有args构造函数
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(){}