实现从一个类到另一个类的方法?

时间:2013-04-05 04:36:58

标签: java eclipse

我正在制作一个班级的飞机座位安排程序,我最终制作了两个toString方法但是当我运行程序时,我的飞机课程中的toString方法正在制作一些不具体的方法:

str= str + seats[i][j].toString();

我认为简单地删除座位类中的toString方法并以某种方式将其放回飞机类toString方法中可以解决问题或使其更简单。怎么了?

飞机课程:

public class Airplane 
{
  private Seat [ ] [ ] seats;
  public static final int FIRST_CLASS = 1;
  public static final int ECONOMY = 2;
  private static final int FC_ROWS = 5;
  private static final int FC_COLS = 4;
  private static final int ECONOMY_ROWS = 5;
  private static final int ECONOMY_COLS = 6;

  public Airplane() 
  {
    seats  = new Seat[FC_ROWS][ECONOMY_COLS]; 
  }
  public String toString()
  {
    String str = "";
    for (int i=0; i<FC_ROWS; i++) {
      for (int j=0; j<ECONOMY_COLS; j++) 
      {
        str= str + seats[i][j].toString();
      }
      str = str + "\n";
    }
    return str;
  }   

}

座位等级:

public class Seat 
{
  private int seatType;
  private boolean isReserved;
  public static final int WINDOW = 1;
  public static final int AISLE = 2;
  public static final int CENTER = 3;

  public Seat(int inSeatType)
  {
    seatType = inSeatType;
    isReserved = false;
  }
  public int getSeatType()
  {
    return seatType;
  }

  public void reserveSeat()
  {
    isReserved = true;
  }
  public boolean isAvailable()
  {
    if (!isReserved)
    {
      return true;
    }
    else return false; 
  }
  public String toString()
  {
    if(isReserved == false)
    {
      return "*";
    }
    else return "";
  }
}

3 个答案:

答案 0 :(得分:1)

seats似乎没有Seat的实例。

添加此代码:

for (int i=0; i<FC_ROWS; i++) {
    for (int j=0; j<ECONOMY_COLS; j++) 
    {
        seats[i][j] = new Seat();
    }
}

在此之下:

seats  = new Seat[FC_ROWS][ECONOMY_COLS];

答案 1 :(得分:1)

  • Seat.toString中,您应该打印" "而不是""
  • 您的数组是FC_ROWS ECONOMY_COLS,所以您没有创建所有席位。你应该有两个数组(一个用于FC,一个用于经济),因为FC_ROWS != ECONOMY_ROWS
  • 您实际上并未在构造函数中创建Seat。使用嵌套循环创建它们,否则您将获得NullPointerException。创建数组不会创建数组中包含的对象。
    • 当你在飞机构造函数中创建座位时,使用if语句来确定座位是否应该是一个窗口,过道等。

答案 2 :(得分:0)

我认为在Seat::toString中,如果没有保留,则表示返回" "(空格)。