如何在太多的类之间传递值?

时间:2019-05-07 11:18:15

标签: java class

我有3个类(包含Main类),分别具有getter,setter和构造函数。在一个名为Airplane的类中,我设置了两个私有整数行和列,并要求Main类的用户输入。之后,我想在一个名为Flight的类中通过将行和列整数来设置数组的大小,该怎么办?

我试图创建一个扫描器对象和一个飞行类中的飞机对象,但是我意识到我要的是我已经在Main中设置的另一个不同的值。有什么方法可以从主行中获取值行和列并放入Flight类中?

飞机舱:

public class Airplane {
   private String code;
   private String description;
   private int rows;
   private int columns;

飞行舱:

public class Flight {

private String ticketCode;
private String AirportDeparture;
private String AirportLanding;
private int Seats[][];
private String menuCode;
private int NumOfSeats;
private int NumOfTakenSeats;
private LocalDate dateOfDeparture;
private LocalTime timeOfDeparture;

主类:

 Airplane airp = new Airplane();
 System.out.println("Give a code.");
 String code = scanner.nextLine();
 airp.setCode(code);
 System.out.println("Give number of rows.");
 int rows = scanner.nextInt();
 airp.setRows(rows);
 System.out.println("Give number of columns.");
 int columns = scanner.nextInt();
 airp.setColumns(columns);
 System.out.println("Give number of business class rows.");
 int BCrows = scanner.nextInt();
 airp.setBCrows(BCrows);

1 个答案:

答案 0 :(得分:2)

一个航班与一架飞机相关联,因此应该简单地引用它。

public class Flight {

    private Airplane airplane;
    private int[][] seats;

}

设置平面后,您将能够使用平面的值初始化数组。

public void setPlane(Airplane airplane){
    this.airplane = airplane;
    this.seats = new int[airplane.getRows()][airplane.getColumns()];
}

请注意,我使用了一个setter,它可以/应该在构造函数中。

现在,我们可以争论飞机是否应该参考其飞行,但这并不是重点。