【发布时间】:2020-08-13 05:02:47
【问题描述】:
我一直在拼命尝试让这段代码工作。这是我第一次使用对象/构造函数(我是一名新程序员),这让我很困惑。我会完全诚实的;我不知道问题是什么。我已经尝试了很多东西,所以这段代码很乱。我也受够了,再次开始编写第二个代码,由于与第一个代码相同的原因,它也不起作用,尽管该代码的结构略有不同。我将在下面发布这两种尝试,希望有人能看到我的错误。谢谢!
尝试 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);
}
}
任何帮助将不胜感激。另外,因为我认为我的编码可能会让你们中的大多数人想扯掉我的脑袋,所以请批评它的任何部分。我只是在这里开始学习过程,所以任何反馈/批评都会非常有帮助。再次感谢!
【问题讨论】:
-
calCircumference(double r)期望给出double。这很奇怪,因为Circle实例已经有一个半径字段。你为什么不用这个?
标签: java oop object constructor