我正在学习一个面向对象的编程类,我很难理解如何构建一个圆形对象,让用户声明半径是什么。
我创建了一个数据类,在其中我放置了我的实例变量,我的getter和setter方法,我的构造函数,然后是基本的计算函数方法来计算给定半径的圆的面积和周长。 这是班级:
package shapesoo;
public class CircleDataClass {
private double radius;
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public CircleDataClass(double radius) {
this.radius = radius;
}
public double getArea(){
return Math.PI * radius * radius;
}
public double getCircumference(){
return 2 * Math.PI * radius;
}
}
然后,我正在创建一个测试类来构建具有给定半径的圆,在我的main方法中,我创建了一个新的圆形对象:
CircleDataClass myCircle = new CircleDataClass(radius);
我没有在此测试类中的任何位置声明radius,因此这就是我遇到运行时错误的原因。但我想要的是用户输入我在构造函数中的radius参数的值,然后将该半径传递给此圆对象。我在主类中创建一个单独的方法,询问半径的值吗?我想我对getter / setters / cosntructors正在做的事以及如何将radius变量传递给不同的类感到困惑。
编辑:如果我把它放入,我的数据类中的实例变量是否被使用?
public static void main(String[] args) {
String shapeType = getShape();
if (shapeType.equalsIgnoreCase("Circle")){
String r = JOptionPane.showInputDialog("What is the radius: ");
double radius = Double.parseDouble(r);
CircleDataClass myCircle = new CircleDataClass(radius);
}
}
我知道如何在不使用面向对象的原则的情况下做到这一点,我知道这对你们许多人来说似乎都是基本的,但我会感谢你们的任何帮助。
答案 0 :(得分:0)
我没有在此测试类中的任何位置声明radius,因此这就是我遇到运行时错误的原因。
好的,这是正常的
但我想要的是用户输入我在构造函数中的radius参数的值,然后将该半径传递给此圆对象。我在主类中创建一个单独的方法,询问半径的值吗?
是。基本上,您可以读取标准输入以供用户输入数字,然后使用它实例化圆圈。请参阅Scanner
课程。
我认为我对getters / setters / cosntructors正在做的事以及如何将radius变量传递给不同的类感到困惑。
myCircle.getRadius()
进行检查。