新的Java程序员,基本的java组成

ngu*_*a02 5 java composition

我是一名新的计算机编程学生.我观看了一个关于Java的视频,基本构图,视频中的人就此主题做了一个例子,如下所示:

public class PaperTray
{
  int pages = 0;
  ....
  public boolean isEmpty()
  {
    return pages > 0;
  }
}
Run Code Online (Sandbox Code Playgroud)
public class Printer extends Machine
{
  private PaperTray paperTray = new PaperTray();
  ....
  public void print(int copies)
  {
  ....
  while(copies > 0 && !paperTray.isEmpty() )
  {
    System.out.println("some text to print");
    copies--;
  }
  if(paperTray.isEmpty())
  {
    System.out.println("load paper");
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如果纸盘是空的,那么在PaperTray类中,方法isEmpty()将返回false.因此,将不会执行类Printer中的if语句.如果纸盘不为空,则PaperTray类中的方法isEmpty()将返回true,因此不会执行类Printer中的while语句.我错了,或者视频剪辑中的讲师犯了一些错误?

谢谢

das*_*ght 5

这个逻辑isEmpty没有意义:我也期待

public boolean isEmpty() {
    return pages == 0;
}
Run Code Online (Sandbox Code Playgroud)

要么

public boolean isNotEmpty() {
    return pages > 0;
}
Run Code Online (Sandbox Code Playgroud)


Pét*_*rök 3

如果纸盘是空的,那么在类中PaperTray该方法isEmpty()将返回false

它应该返回true(对于任何合理的实现,即:-)。对于名为 的方法isEmpty(),常识表明它true在封闭对象/集合为空false为空时返回。

换句话说,您上面显示的实现有一个错误。