初学者Java在构造函数上不需要参数错误

0 java constructor compiler-errors

因此,作为一个类的赋值,我试图创建一个简单的圆类,然后将其用作构造函数.这是我的班级代码:

public class Circle
{
  private double radius;
  private double pi;

  public void setRadius(double rad)
  {
    radius = rad;
  }

  public double getRadius()
  {
    return radius;
  }

  public double getArea()
  {
    return pi * radius * radius;
  }

  public double getDiameter()
  {
    return radius * 2;
  }

  public double getCircumference()
  {
    return 2 * pi * radius;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是使用该类创建构造函数的程序:

import java.util.Scanner; //scanner class for input

  public class CircleDemo
{
  public static void main(String[]args)
  {
    double radiusIn; //gets radius from input

    Scanner keyboard=new Scanner(System.in); //activates scanner class in program

    System.out.print("Enter the radius of a circle: ");
    radiusIn=keyboard.nextDouble();

    Circle circularObject= new Circle(radiusIn);

    System.out.println("The circle's area is" + circularObject.getArea());
    System.out.println("The circle's diameter is" + circularObject.getDiameter());
    System.out.println("The circle's circumference is" + circularObject.getCircumference());
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到错误:错误:类Circle中的构造函数Circle不能应用于给定的类型; required:找不到参数:double reason:实际和形式参数列表的长度不同

我没有看到我的代码有任何问题,但我再次使用我老师给我们的样本.

Kon*_*Kon 7

你在这里调用构造函数

Circle circularObject= new Circle(radiusIn);
Run Code Online (Sandbox Code Playgroud)

但是在您的Circle类中没有定义与您传入的参数匹配的构造函数.返回到您的Circle类并定义带有double参数的构造函数:

public Circle(double val)
{
    //Implementation
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您没有为类提供显式构造函数,Java将自动为您提供一个空实现,无参数,公共构造函数供您使用.一旦定义了第一个显式构造函数,那个默认构造函数就会消失,这意味着你必须手动重新定义它.