在Scanner输入中使用类,参数,对象

时间:2018-11-08 13:21:49

标签: java

我有一个City.java和State.java类,它们具有自动生成的构造函数,getter和setter(如果需要,我可以将它们添加到问题中)。

Main.java中,我的任务是使用Scanner作为输入来获取信息,并使用写入的所有信息制作对象。

每个对象的数据输入都需要在单独的方法中取出,这些方法最终将从main方法中调用。这些方法中的每一个都必须返回填充的对象。只能允许类Scanner的一个对象。

public Class City { 
   private String name;
   private Bigdecimal surface;
   //+constructor , + getters and setters
}
public Class State {
   private String name;
   private City city;
 //+constructor , + getters and setters
}

public class Main {

    public static City city (Scanner scanner) {
       System.out.println("Store City name : ");
       String cityName = scanner.nextLine();
       System.out.println("Store City surface : ");
       BigDecimal citySurface = scanner.nextBigDecimal();

    return new City(cityName,citySurface);
    }

    public static State state (Scanner scanner){
      System.out.println("Store State name : ");
      String stateName = scanner.nextLine();

我现在迷路了。任务是我应该返回新的 带有参数(stateName,City)的状态,但我不知道 如何将先前输入的城市作为参数传递给这里。

      }


  public static void main(String[] args) {
    Scanner mainScanner = new Scanner (System.in);
  }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

public class Main {

  public static City city (Scanner scanner) {
   System.out.println("Store City name : ");
   String cityName = scanner.nextLine();
   System.out.println("Store City surface : ");
   BigDecimal citySurface = scanner.nextBigDecimal();

   return new City(cityName,citySurface);
  }

  public static State state (Scanner scanner, City city){
    System.out.println("Store State name : ");
    String stateName = scanner.nextLine();
    //Do stuff here with city e.g. city.getName()
    return new State(stateName, city);
  }

  public static void main(String[] args) {
    Scanner mainScanner = new Scanner (System.in);
    City myCity = city(scanner);
    state(mainScanner, myCity);
    //I'm sure you could also do this code in shorthand like below because of the callstack order.
    //state(mainScanner, city(scanner));
  }

}

您只需要将city对象传递给州,然后处理一旦拥有它便应发生的代码。老实说,我认为您不应该在Main类中以静态方法或其他方式提供这些方法,但这完全是另一个问题。

相关问题