java - Scanner 类放在哪里

标签 java java.util.scanner

作为 Java 的新学生,我一直在练习编写方法,然后从不同的类中调用它们。我想知道如何由用户输入确定半径。我知道我需要使用 Scanner 类,但我不确定将 Scanner 导入哪个类以及在哪里放置以下代码。

Scanner userInput = new Scanner(System.in);
System.out.println("Please enter radius");
int radius = userInput.nextInt();

第一个文件 - 我的方法

package circle;

public class Circle {
  private double radius;
  final double pi;

  public Circle(double radiusIn, double piIn) {
    radius = radiusIn;
    pi = piIn;
  }

  public double getRadius() {
    return radius;
  }

  public double calculateDiameter() {
    return radius + radius;
  }

  public double calculateCircumference() {
    return 2 * pi * radius;
  }

  public double calculateArea() {
    return pi * radius * radius;
  }
}

第二个文件

package circle;

public class CircleTest {
  public static void main(String[] args) {
    Circle myCircle;
    myCircle = new Circle(3, 3.14159);
    System.out.println("Circle radius is " + myCircle.getRadius());
    System.out.println("Circle diameter is " + myCircle.calculateDiameter());
    System.out.println("Circle circumference is "
        + myCircle.calculateCircumference());
    System.out.println("Circle area is " + myCircle.calculateArea());
  }
}

最佳答案

通常,您可以在需要的地方声明变量,在这种情况下,这意味着在 main 方法中进行其余的用户交互。

package circle;

public class CircleTest {
  public static void main(String[] args) {
    Circle myCircle;

    Scanner userInput = new Scanner(System.in);
    System.out.println("Please enter radius");
    int radius = userInput.nextInt();

    myCircle = new Circle(radius);
    System.out.println("Circle radius is " + myCircle.getRadius());
    System.out.println("Circle diameter is " + myCircle.calculateDiameter());
    System.out.println("Circle circumference is "
        + myCircle.calculateCircumference());
    System.out.println("Circle area is " + myCircle.calculateArea());
  }
}

此外,Math.PI 是 pi 的更精确的近似值。使用它而不是依赖用户传递正确的值:

package circle;

public class Circle {
  private double radius;


  public Circle(double radiusIn) {
    radius = radiusIn;
  }

  public double getRadius() {
    return radius;
  }

  public double calculateDiameter() {
    return radius + radius;
  }

  public double calculateCircumference() {
    return 2 * Math.PI * radius;
  }

  public double calculateArea() {
    return Math.PI * radius * radius;
  }
}

关于java - Scanner 类放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828902/

相关文章:

java - 终止对话框后退按钮上的 Activity

java - Android:如何知道运行时小部件应用了哪种样式

java - 如何阻止 Cloud Firestore 数据库中的值被多次打印?

Java : Quartz scheduler - is there a way I can get next five runs of a scheduled job

java - 为什么 System.out.println 无法打印出字符串值(在我的特定情况下)?

java - 如果输入的长度未定义,如何从 std.in 读取

java - 这个程序中正确的 Big-O 值是什么?

java - 在方法中使用分隔符 (Java)

java - 使用 java.util.Scanner 将网站数据读取到 Java 变量中

java - 我怎样才能以最佳性能进行过滤? (Java)