Codecheck不允许我通过

时间:2018-05-01 08:27:54

标签: java

嘿,我有一个发出错误的代码。不知道为什么以及如何。但有人可以帮我这个吗?

错误:

  

/tmp/codecheck.rA4OvrywJM/InterfaceTester.java:6:错误:构造函数   类Sphere中的球体不能应用于给定类型;

   GeometricSolid shape = new Sphere(10);
                          ^   required: no arguments   found: int  
     

原因:实际和正式的参数列表长度不同

     

/tmp/codecheck.rA4OvrywJM/InterfaceTester.java:10:错误:构造函数

     

Sphere类中的球体不能应用于给定类型;

   shape = new Sphere(1);
           ^   required: no arguments   found: int 
     

原因:实际和正式的参数列表长度不同2错误

这是我的代码和代码检查http://www.codecheck.it/files/18040616263h5pl4lvxfmzj6u9w7xty4dfu

的链接
 /**
 * Write a description of class asdasdasd here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public interface GeometricSolid
{
    public double volume();

}

import java.util.*;
public class Sphere implements GeometricSolid
{
double radius;
    /**
     * Gets the volume of sphere
     * @return volume volume of sphere
     */
    public double volume()
    {
        double volume = 4.0 * Math.PI * Math.pow(this.radius, 3) / 3.0;
        return volume;
    }

    /**
     * Get radius of sphere
     * @return the radius of sphere
     */
    public double getRadius()
    {
        return radius;
    }
    /**
     * set radius for sphere
     * @param newRadius of a sphere
     */
    public void setRadius(int newRadius)
    {
        radius = newRadius;
    }
}

2 个答案:

答案 0 :(得分:1)

您必须向Sphere类添加一个构造函数,该类将radius作为参数并将其传递给变量。
例如:

public Sphere(double radius){
     this.radius = radius;
}

答案 1 :(得分:0)

在这种情况下,编译器错误非常清楚错误是什么。

  

要求:没有参数
  发现:int

构造函数(在您的情况下是Java自动生成的默认无参数构造函数)不接受任何参数,并且您尝试将整数传递给它。

因为你的球体有一个setter,你可以像这样实例化Sphere

Sphere shape = new Sphere();
shape.setRadius(1);

你的二传手拿一个整数但吸气者和场地使用双倍是不寻常的。你应该改变它。