【问题标题】:Adding two objects -- trouble understanding accepting an object as an argument添加两个对象——难以理解接受一个对象作为参数
【发布时间】:2019-01-08 07:21:34
【问题描述】:

我正在为我的 Java 类开发一个项目。我对此有点陌生,所以我会很感激任何帮助。本质上,我正在建立一个处理盎司和磅的类。类的一个对象有两个整数变量,一个代表盎司,一个代表磅。此类所需的方法之一需要将类的对象 (PoundsOunces) 作为参数,添加到调用对象,并返回总和。我尝试了不同的方法来做到这一点,但我不断收到错误。这是我迄今为止最接近的想法。

public PoundsOunces add(PoundsOunces object2) {
    return (pounds += object2.pounds, ounces += object2.ounces);
}

如果这是一个明显的解决方法,我们深表歉意。

编辑:在我们的说明中,要求返回一个 PoundsOunces 对象。

这是一个 UML 图。 该类的 UML 图:

磅盎司

  • 磅:整数
  • 盎司:整数 (这些是变量,下面是方法)
  • 磅盎司():
  • 磅盎司(p:int,o:int):
  • 简化():无效
  • setPounds(p : int) 无效
  • setOunces(o : int) : void
  • getPounds() : 整数
  • getOunces() : 整数
  • toString() : 字符串
  • add(object2 : PoundOunces) : PoundsOunces
  • equals(object2 : PoundsOunces) : boolean

【问题讨论】:

  • 由于您的规范是返回总和 我假设您必须返回 int 而不是 PoundsOunces
  • 您需要 PoundsOunces 类才能返回。
  • 您是要操作当前对象中的字段然后返回它,还是要使用新的总和创建一个新对象并返回它?
  • @dunni 我相信最好的方法是创建一个新对象。我遇到的唯一问题是弄清楚如何让调用对象成为其中的一部分。
  • 当你达到 16 时,盎司不应该翻转到零并增加磅值吗?

标签: java class object parameters return


【解决方案1】:

根据您的 cmets,您希望调用对象成为总和的一部分。然后我猜你想添加两个对象,当前对象和一个作为引用传递的对象。以下两种方法应该有效。在这里,使用this关键字,我们得到了调用对象的引用

public PoundsOunces add(PoundsOunces object2) {
    PoundsOunces pounces = new PoundsOunces();
    pounces.pounds =this.pounds + object2.pounds; 
    pounces.ounces = this.ounces+ object2.ounces;
    return pounces;
}

如果你想返回当前对象,那么下面应该可以工作。

public PoundsOunces add(PoundsOunces object2) {
    this.pounds += object2.pounds;
    this.ounces += object2.ounces;
    return this;
}

【讨论】:

  • 哦,哇,这很明显。我总是忘记使用它。太感谢了。标记为正确。
猜你喜欢
  • 2019-03-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
相关资源
最近更新 更多