首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新的Java程序员,基本的java组合

新的Java程序员,基本的java组合
EN

Stack Overflow用户
提问于 2012-06-26 08:19:20
回答 6查看 325关注 0票数 5

我是一个新的计算机编程专业的学生。我看了一个关于Java,基本组成的视频,视频中的那个人做了一个关于这个主题的例子如下:

代码语言:javascript
复制
public class PaperTray
{
  int pages = 0;
  ....
  public boolean isEmpty()
  {
    return pages > 0;
  }
}

代码语言:javascript
复制
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");
  }
}

我的问题是,如果纸盘是空的,那么在类PaperTray中,isEmpty()方法将返回false。因此,不会执行类打印机中的if语句。如果纸盘不是空的,类PaperTray中的方法PaperTray()将返回true,因此不会执行类打印机中的while语句。是我错了,还是视频剪辑里的老师犯了一些错误?

谢谢

EN

回答 6

Stack Overflow用户

发布于 2012-06-26 08:22:40

isEmpty的逻辑没有意义:我也希望

代码语言:javascript
复制
public boolean isEmpty() {
    return pages == 0;
}

代码语言:javascript
复制
public boolean isNotEmpty() {
    return pages > 0;
}
票数 5
EN

Stack Overflow用户

发布于 2012-06-26 08:21:06

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2012-07-17 20:19:32

我是录像老师。谢谢你发现这个错误。你是对的。在录制视频的某个时候,我肯定有> 0,而不是<= 0。

抓得好。它应该是

代码语言:javascript
复制
public class PaperTray
{
  int pages = 0;
  ....
  public boolean isEmpty()
  {
    return pages <= 0;
  }
}

我检查了可下载课程的示例代码,它在那里和其他任何地方都是正确的,类出现在课程中,所以它肯定只是一个点。

再次感谢你发现了这个错误,我也为你的错误和困惑而道歉。希望你还能从这门课中受益。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11203325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档