java - Java 构造函数:错误“实际参数列表和形式参数列表的长度不同”
问题描述
我一直在拼命想让这段代码工作。这是我第一次使用对象/构造函数(我是一名新程序员),这让我很困惑。我会完全诚实的;我不知道问题是什么。我已经尝试了很多东西,所以这段代码很乱。我也受够了,并再次开始编写第二个代码,但由于与第一个代码相同的原因,它也不起作用,尽管该代码的结构略有不同。我将在下面发布这两种尝试,希望有人能看到我的错误。谢谢!
尝试1:
class Circle
{
private static double r;
public static double rd;
public double Circle( double r, double rd )
{
r = rd;
return r;
}
public double calCircumference(double r)
{
return 2*Math.PI*r;
}
public static double calArea(double r)
{
return Math.PI*r*r;
}
}
class CircleApp
{
public static void main( String[] args )
{
double rd = Double.parseDouble( args[0] );
System.out.println( "Circle radius = " + rd );
// create an object of Circle with the radius rd
Circle circle1 = new Circle();
double cir = circle1.calCircumference();
double area = circle1.calArea();
System.out.println("Circumference = " + cir);
System.out.println("Area = " + area);
}
}
尝试2:
class Circle
{
public double rd = Double.parseDouble( args[0] );
private double r;
public void Circle( double rd )
{
double r = rd;
}
private double calCircumference(double r)
{
return 2*Math.PI*r;
}
public double calArea()
{
return Math.PI*r*r;
}
}
class CircleApp2
{
public static void main( String[] args )
{
System.out.println( "Circle radius = " + rd );
// create an object of Circle with the radius rd
Circle circle1 = new Circle( rd);
double cir = circle1.calCircumference();
double area = circle1.calArea();
System.out.println("Circumference = " + cir);
System.out.println("Area = " + area);
}
}
任何帮助将不胜感激。另外,因为我认为我的编码可能会让你们中的大多数人想扯掉我的脑袋,所以请批评它的任何部分。我只是在这里开始学习过程,所以任何反馈/批评都会非常有帮助。再次感谢!
解决方案
Constructors are not void
methods. This
public void Circle( double rd )
should be
public Circle( double rd ){
this.r = rd;
}
Then next issue is
private double calCircumference(double r)
should be
private double calCircumference()
and
public double rd = Double.parseDouble( args[0] );
does not make sense, that isn't in main
. Putting everything together,
class Circle {
private double r;
public Circle(double rd) {
this.r = rd;
}
public double calCircumference() {
return 2 * Math.PI * r;
}
public double calArea() {
return Math.PI * r * r;
}
}
And then
class CircleApp2 {
public static void main(String[] args) {
double rd = Double.parseDouble(args[0]);
System.out.println("Circle radius = " + rd);
// create an object of Circle with the radius rd
Circle circle1 = new Circle(rd);
double cir = circle1.calCircumference();
double area = circle1.calArea();
System.out.println("Circumference = " + cir);
System.out.println("Area = " + area);
}
}
推荐阅读
- git - 如何在提交前 git restore ${project.build.directory}
- api-platform.com - API 平台:更改数据库位置的问题
- python - 如何在for循环中根据指定的某些条件找到最大值?
- python - 如何旋转一列唯一 ID 以在相邻列中显示所有匹配的辅助 ID?
- java - 我可以将 Orika 配置为忽略 setter 的返回类型吗
- sql - 用于从 MS SQL 中的 Big Query 访问数据的 ODBC 驱动程序
- c# - Entity Framework Core:两个实体之间的多个一对多关系
- node.js - AWS Lambda:如何给 ffmpeg 大文件?
- javascript - 我需要从不同的函数调用 ClearInterval
- gitlab - GitLab 容器到 GKE (Kubernetes) 部署