Добавление двух объектов - проблемы с пониманием принятия объекта в качестве аргумента

Я работаю над проектом для своего класса Java. Я немного новичок в этом, поэтому буду признателен за любую помощь. По сути, я создаю класс, который имеет дело с унциями и фунтами. Объект класса имеет две целочисленные переменные: одну для унций и одну для фунтов. Один из методов, необходимых для этого класса, требует, чтобы объект класса (PoundsOunces) был принят в качестве параметра, добавлен к вызывающему объекту и возвращена сумма. Я пробовал разные способы сделать это, но продолжаю получать ошибки. Это самая близкая идея, которая у меня была до сих пор.

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

Приносим извинения, если это очевидное исправление.

Обновлено: в наших инструкциях требовалось вернуть объект PoundsOunces.

Вот диаграмма UML. Диаграмма UML для класса:

ФунтыУнции

  • фунты: int
  • унции: int (это были переменные, ниже методы)
  • ФунтыУнции ():
  • ФунтыУнций (p: int, o: int):
  • simpleify (): void
  • setPounds (p: int) void
  • setOunces (o: int): недействительно
  • getPounds (): интервал
  • getOunces (): интервал
  • toString (): строка
  • add (object2: PoundOunces): PoundsOunces
  • equals (object2: PoundsOunces): логическое

Поскольку ваша спецификация - вернуть сумму, я предполагаю, что вы должны вернуть int вместо PoundsOunces

gtgaxiola 31.07.2018 21:57

Для возврата вам нужен класс PoundsOunces.

Ashot Karakhanyan 31.07.2018 21:57

Вы хотите манипулировать полями в текущем объекте, а затем вернуть это, или вы хотите создать новый объект с новыми суммами и вернуть его?

dunni 31.07.2018 21:58

@dunni Я считаю, что лучший способ - создать новый объект. Единственная проблема, с которой я сталкиваюсь, - это выяснить, как сделать вызывающий объект частью этого.

Squat Johnson 31.07.2018 22:01

Разве унции не должны опуститься до нуля и увеличивать стоимость фунта, когда вы достигнете 16?

Mick Mnemonic 31.07.2018 22:04

Можете ли вы опубликовать полное определение класса PoundsOunces? У него больше двух полей?

dunni 31.07.2018 22:04

@MickMnemonic да, у меня уже есть способ сделать это.

Squat Johnson 31.07.2018 22:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно вашим комментариям, вы хотите, чтобы вызывающий объект был частью суммы. Тогда я думаю, вы хотите добавить два объекта, текущий объект и один, переданный в качестве ссылки. Ниже должны работать два метода. Здесь, используя ключевое слово 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;
}

Ого, это было очевидно. Я всегда забываю об этом. Большое спасибо. Отмечено как правильное.

Squat Johnson 31.07.2018 22:12

Другие вопросы по теме