首页 > 解决方案 > 如何在一个类中从 Scanner 获取用户输入,然后将其应用于同一包中的另一个类?

问题描述

例如

包 testcircle1;

导入 java.util.Scanner;

公共类 TestCircle1 {

public static void main(String[] args) {
    System.out.println("Welcome!!!!");
    Circle c1 = new Circle( );
    Scanner in= new Scanner(System.in);

     System.out.println("Please enter a number");

    c1.setRadius() = in.nextDouble();

    System.out.println(c1.getRadius()); 

}

}

包 testcircle1; 公共类圈子{

public Circle() {   
}

public Circle(double radius) {

}

public void setRadius(double radius) {
    if (radius >= 0)
        this.radius = radius;
}

public double getRadius() {
    return radius;
}

}

我究竟做错了什么?

标签: java

解决方案


您需要添加以下两个。1.增加'私人双半径;' 在类 Circle 2 中。在 main 方法中,您需要使用 c1.setRadius(in.nextDouble())

提供相同的代码

导入 org.slf4j.Logger;导入 org.slf4j.LoggerFactory;

导入 java.util.Scanner;

公共类 TestCircle1 {

私有静态 Logger logger = LoggerFactory.getLogger(TestCircle1.class);

公共静态无效主要(字符串[]参数){

System.out.println("Welcome!!!!");
Circle c1 = new Circle();

try {
  Scanner in = new Scanner(System.in);

  System.out.println("Please enter a number");

  if (!in.hasNextDouble()) {
    throw new IllegalArgumentException("Input is not a double value");
  }

  c1.setRadius(in.nextDouble());

  System.out.println(c1.getRadius());
} catch (IllegalArgumentException e) {
  logger.error(e.getMessage());
}

} }

public class Circle {
    private double radius;
    public Circle() {
    }

    public Circle(double radius) {

    }

    public void setRadius(double radius) {
        if (radius >= 0)
            this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

}

推荐阅读