简体   繁体   中英

How do I take an user input from Scanner in one class and then apply it to another class in the same package?

For example

package testcircle1;

import java.util.Scanner;

public class 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()); 

}

}

package testcircle1; public class Circle {

public Circle() {   
}

public Circle(double radius) {

}

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

public double getRadius() {
    return radius;
}

}

What am I doing wrong?

You need to add below two. 1. Add 'private double radius;' in class Circle 2. In main method you need to use c1.setRadius(in.nextDouble())

providing code for the same

import org.slf4j.Logger; import org.slf4j.LoggerFactory;

import java.util.Scanner;

public class TestCircle1 {

private static Logger logger = LoggerFactory.getLogger(TestCircle1.class);

public static void main(String[] args) {

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;
    }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM