这是我在这里的第一个问题,我对编程很新,所以请耐心等待。
我正在学习java课程,在我目前的作业中,我必须创建一个圆形的三个实例,计算它们的直径和面积,然后打印这些值。前两个实例应该通过setRadius方法设置半径,而第三个实例应该保留基于半径1的默认计算。
编辑:问题是这样的:我使用setRadius方法的前两个对象返回了正确的值,但第三个用于返回构造函数的默认值,而是返回全零。
这是代码,提前谢谢!
//this class implements the Circle class
public class TestCircle
{
public static void main(String[] args)
{
Circle Circle1 = new Circle();
Circle Circle2 = new Circle();
Circle Circle3 = new Circle();
Circle1.setRadius(2);
Circle2.setRadius(10);
Circle1.display();
Circle2.display();
Circle3.display();
}
}
import java.lang.Math.*;
public class Circle
{
double radius;
double diameter;
double area;
public void Circle()
{
radius = 1;
diameter = radius * 2;
area = (radius * radius) * Math.PI;
}
public void setRadius(double rad)
{
this.radius = rad;
diameter = radius * 2;
area = (radius * radius) * Math.PI;
}
public void display()
{
System.out.println("Radius: " + radius);
System.out.println("Diameter: " + diameter);
System.out.println("Area: " + area);
}
}
答案 0 :(得分:4)
此
public void Circle()
只是一个void
返回类型的方法。对于构造函数,您需要
public Circle() // notice there is no return type
因为您实际上没有提供构造函数,所以
Circle Circle1 = new Circle();
Circle Circle2 = new Circle();
Circle Circle3 = new Circle();
使用编译器提供的默认构造函数。它有一个空体,因此默认情况下字段值都初始化为0
。
由于您只在其中两个上拨打setRadius()
,另一个只会显示0
的值。
阅读构造函数here。
Java命名约定规定变量名称应以小写字母开头,并遵循camelCase
格式。您可以对此主题进行进一步阅读here。