感谢您的帮助。我已经编写了一个可以编译和运行的Main类。我遇到的问题是,我可以使用display方法运行Test类。(没有正确地拉到新类)我必须创建具有3个对象的Test类,其中一个具有小值、大值和保留值。我必须使用setRadius()方法。你能提供的任何指导都会非常有帮助。
public class Circle
{
public static void main(String[] args)
{
//call constructor and method
Circle myCircle = new Circle();
myCircle.display();
}
//set fields
double radius;
double diameter;
double area;
//create constructor set radius & compute diameter and area.
public Circle()
{
radius= 1;
diameter = 2 * radius;
area = Math.PI * (radius * radius);
}
//set radius, diameter, and area
public void setRadius()
{
radius= 1;
diameter = radius * radius;
area = Math.PI * (radius * radius);
}
//return radius
public double getRadius()
{
return radius;
}
//write display
public void display()
{
System.out.println("The radius is " + radius);
System.out.println("The diameter is " + diameter);
System.out.println("The area is " + area);
}
}
public class TestCircle
{
public static void main(String[] args)
{
Circle circleA = new Circle();
circleA.setRadius();
System.out.println("Circle A: " + circleA.setRadius());
Circle circleB = new Circle();
circleB.setRadius();
System.out.println("Circle B: " + circlB.setRadius());
}
}
这里有一些指针:
在创建对象时,使用构造函数设置实例变量的初始值。如果需要,可以在创建后使用设定半径更改值。直径和面积是可以从半径导出的变量。我建议编写返回这些的方法。
也只是按照方法名称所说的去做。例如,在setRadius中,只设置半径,没有其他内容。
public class Circle
{
//set fields
private double radius;
//create constructor set radius & compute diameter and area.
public Circle(double radius)
{
this.radius=radius;
}
//set radius
public void setRadius(double radius)
{
this.radius = radius;
}
public double getDiameter()
{
return 2*radius;
}
//return radius
public double getRadius()
{
return radius;
}
public double getArea()
{
return Math.PI * (radius * radius);
}
//write display
public void display()
{
System.out.println("The radius is " + radius);
System.out.println("The diameter is " + getDiameter());
System.out.println("The area is " + getArea());
}
}
public class TestCircle
{
public static void main(String[] args)
{
Circle circleA = new Circle(1.0);
circleA.display();
Circle circleB = new Circle(2.0);
circleB.display();
}
}
我认为您希望在Circle
实例上调用display()
。看起来像
public class TestCircle
{
public static void main(String[] args)
{
Circle circleA = new Circle();
circleA.setRadius();
// System.out.println("Circle A: " + circleA.setRadius());
circleA.display();
Circle circleB = new Circle();
circleB.setRadius();
// System.out.println("Circle B: " + circlB.setRadius());
circleB.display();
}
}
编辑
您创建了一个circleA
和circleB
,但您的setRadius
方法不接受radius
参数,而且您的数学似乎不正确。
public void setRadius(int radius)
{
this.radius = radius;
diameter = radius + radius; // <-- 2*radius (not radius*radius)
area = Math.PI * (radius * radius);
}
然后你可以像一样在main()
中调用具有不同半径的setRadius
public static void main(String[] args)
{
Circle circleA = new Circle();
circleA.setRadius(2);
circleA.display();
Circle circleB = new Circle();
circleB.setRadius(4);
circleB.display();
}