Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实现从一个类到另一个类的方法?_Java_Eclipse - Fatal编程技术网

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

Java 实现从一个类到另一个类的方法?,java,eclipse,Java,Eclipse,我正在为一个班级的飞机座位安排编制一个程序,最后我编制了两个toString方法,但当我运行该程序时,我的飞机班级中的toString方法使某些东西无法具体工作: str= str + seats[i][j].toString(); 我相信,简单地删除seat类中的toString方法,并以某种方式将其放回到飞机类toString方法中,就可以解决问题或使其更简单。怎么了 飞机等级: 我认为在Seat::toString中,如果没有保留,您的意思是返回”(一个空格)。seats似乎没有Seat

我正在为一个班级的飞机座位安排编制一个程序,最后我编制了两个
toString
方法,但当我运行该程序时,我的飞机班级中的
toString
方法使某些东西无法具体工作:

str= str + seats[i][j].toString();
我相信,简单地删除seat类中的
toString
方法,并以某种方式将其放回到飞机类
toString
方法中,就可以解决问题或使其更简单。怎么了

飞机等级:
我认为在
Seat::toString
中,如果没有保留,您的意思是返回
(一个空格)。
seats
似乎没有
Seat
的实例

添加此代码:

for (int i=0; i<FC_ROWS; i++) {
    for (int j=0; j<ECONOMY_COLS; j++) 
    {
        seats[i][j] = new Seat();
    }
}
  • Seat.toString
    中,您应该打印
    而不是
  • 您的数组是由
    ECONOMY\u COLS
    创建的
    FC\u行
    ,因此您没有创建所有的座位。由于
    FC\u行!=经济型行
  • 实际上,您并没有在构造函数中创建
    Seat
    s。使用嵌套循环创建它们,否则将得到
    NullPointerException
    。创建数组不会创建数组中包含的对象。
    • 在飞机构造器中创建座椅时,使用
      if
      语句确定座椅是否应该是窗口、过道等

请向我们展示您不正确和正确的输出。您尚未修复
NPE
,因为您昨天发布了关于同一段代码的帖子
str=str+seats[i][j].toString()
将抛出一个
NPE
,首先修复它。对不起,R.J我对NPE是什么以及我将如何修复它感到困惑。但这肯定是给我带来问题的代码行。建议?NullPointerException。修复方法是初始化它…..很多人都提到NPE,Thihara说要初始化它,但我如何初始化代码行str=str+seats[i][j].toString();如果这是一个愚蠢的问题,对不起,我仍在学习基础知识。是的,我修复了如果它没有保留,那么我将返回E(空),然后返回“*”(已占用),谢谢您的关注。虽然没有解决问题,但肯定会出现一些问题。对于这个项目来说,这并不重要,因为没有的座位稍后会以星号返回。谢谢你,但是如果你打电话给
.toString()
on
null
你会得到一个
NullPointerException
好的,正如我说的,很多人都提到了NPE,但我仍然不知道如何修复它,你能告诉我如果你有最好的答案,我会怎么做吗?但它解决了我的问题。至少打印出了一些事情,尽管它不喜欢新座位上的座位我最后做的是新座位(Seat.WINDOW);我也试过中间和过道,打印出来的是:预期的:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee。你能在问题上写下你期望的答案而不是评论吗?我修正了。所以不用担心基本上发生的事情是我只是打印了我的经济舱而不是我的第一节课我最终输入了比需要多得多的代码,但它完成了任务。无论如何,thnx
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 "";
  }
}
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];