我有一个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);
}
}
答案 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类中以静态方法或其他方式提供这些方法,但这完全是另一个问题。