在Java中使用构造函数

在Java中使用构造函数,java,Java,今天的问题3。我必须设计一个程序,可以从用户那里读取特定半径的数据,然后显示相关圆的a/D/C。我已经写下了我需要的构造函数,但是我似乎对我应该用它做什么感到困惑 我如何利用构造函数中的内容并在main中使用它 相关建造商代码: public class GetCircle { private float radius; private double diameter,circumference,area; public GetCircle(float getRadius, double se

今天的问题3。我必须设计一个程序,可以从用户那里读取特定半径的数据,然后显示相关圆的a/D/C。我已经写下了我需要的构造函数,但是我似乎对我应该用它做什么感到困惑

我如何利用构造函数中的内容并在main中使用它

相关建造商代码:

public class GetCircle {
private float radius;
private double diameter,circumference,area;

public GetCircle(float getRadius, double setDiameter, double setCircumference, double setArea){
    radius=getRadius;
    diameter=setDiameter;
    circumference=setCircumference;     
    area=setArea;
}
public void setRadius(float getRadius){
    radius=getRadius;
}
public float getRadius(){
    return radius;
}   
public void setDiameter(double setDiameter){
    diameter=setDiameter;
}
public double setDiameter(){
    return diameter;
}
public void setCircumference(double setCircumference){
    circumference=setCircumference;
}       
public double setCircumference(){
    return circumference;
}
public void setArea(double setArea){
    area=setArea;
}
public double setArea(){
    return area;
}
public void answer(){
    System.out.println("The Radius that you specified was: " + getRadius());
    System.out.println("The Diameter of your circle is: " + setDiameter());
    System.out.println("The Circumference of your circle is: " + setCircumference());
    System.out.println("The Area of your circle is: " + setArea());
    }
}

相关主要方法:

import java.util.Scanner;
public class Circle {

public static void main (String[] args){
    double PI = 3.14159;
    Scanner input = new Scanner(System.in);
    System.out.println("Hello, for this exercise we require that you input the Radius of the circle of your choosing: ");


}

}
我想我有两个问题: 1) 如何从构造函数类中获取所需内容并将其引入主方法。 2) 哪里是定义圆的“数学”的最佳位置(如2πr等)

谢谢

  • 您可能希望通过使用类来捕获输入。您可能希望对他们是否输入单词而不是整数进行健全性检查,但是
    Scanner
    是一个很好的起点

  • 任何与对象相关的操作都应该属于对象内部。在您的例子中,由于圆周与圆相关,因此最好在
    圆的内部创建一个类似
    public double getpercentry()
    的方法


  • 拥有一个类的关键是在类中设置这些变量。在伪代码中,您要做的是:

      Main: Instantiate a new circle (which calls its constructor class)
            Circle: Set the internal (private and public) class variables of the circle
            Circle: Now has private variables set with the values you need to get into Main
      Main: Call a method on the Circle that does the Math you want
      (Alt. Use your getter classes you made like circle.getRadius in the main method to use these like 'variables')
    

    对于数学,你可以把它放在圆圈里,放在你的主课上,或者放在新课上。这需要一点了解,并且取决于你自己特定的面向对象的愿望

    我认为你应该重新检查你的Circle类。圆有一个属性。这通常是半径或直径

    我更喜欢只有空构造函数。YMMV。我会用setter定义半径

    那么你能对一个圆做什么呢?为每个操作添加一个方法:

    getDiameter()
    getArea()
    getCircumference()
    getRadius()
    

    然而,我不想听起来轻率,如果你一天之内就有三个关于Java的问题……你不觉得你应该多复习一下你的课本吗?如果允许的话,你可以使用
    Math.PI
    而不是定义你自己的PI常量……记住,22/7对罗马人来说已经足够了。;-)另一方面,java已经定义了PI,因此您可以在算术中引用
    Math.PI
    ,而不是自己定义。嘿,至少Numpty编写了代码。让我们让他放松一下。他的问题是他不理解物体。这需要时间。把它放在另一个班是没有意义的。关于类的信息,包括派生信息(例如面积、周长等),在类中比在其他任何地方都更有意义。这是面向对象设计的基本理论。这取决于,如果Circle是一个数据对象,他可能需要一个特定的“数学”类来处理它。虽然你是对的,他可能应该把它放在getCircle里面。命名惯例让我有点困惑。我必须问一下——如果像Max这样的人(显然还有其他人:我可爱的分数)在试图学习的人身上有问题,有人能推荐一个没有精英/敌对心态的网站,我会更好地为其服务吗?谢谢你的帮助,但是…来吧。这个地方的概念实际上是问问题…@numpty我不想用这个答案侮辱你。我的方法是退一步,重新审视关于类的更基本的概念。在本例中,您可以看到我将类命名为“Circle”。那是因为名词是很好的类名。你的“GetCircle”很冗长。那么一旦我们有了一个圆,你能用这个圆做什么呢?这些都暗示了方法。嗨,托尼,你可能是对的,我确实需要进一步研究基本概念。我只是对这里的普遍敌意有点吃惊。在UL/SF中,我们对noob的友好程度明显提高(不是说你特别友好,只是对整个社区而言)…@这是一个很好的问题。在我上面描述的类中,您将如何实现getDiameter()?谢谢Makoto-我肯定知道我需要使用扫描仪进行输入,但我会尝试将大多数方法移动到Circle,这样会更容易。当做