Как реализовать метод, который игнорирует некоторые входные значения?(Джава) - PullRequest
0 голосов
/ 06 октября 2018

Я абсолютный новичок в Java.Моей первой задачей было создать простой пакет геометрических объектов - Точка, Линия, Круг, Прямоугольник и так далее.Все работает нормально, но я не уверен, как выполнить эту другую задачу:

Создайте метод в этом существующем файле, который принимает массив объектов и возвращает общую сумму их областей, но вВ тех случаях, когда у них нет этого параметра (например, классы Line и Point), метод игнорирует эти объекты.

Я предполагаю, что интерфейс (вроде GeometricObject или, может быть, ObjectWithArea), но я понятия не имею, как его использовать.Я думал о чем-то вроде этого:

public interface ObjectWithArea {

   double sumOfAreas(Array) {

   //this is the declaration of the method
  }

}

Вот как я включил бы интерфейс в мой существующий код:

class Rectangle implements ObjectWithArea {

   //here are the original parameters and methods of this class

   double sumOfAreas(Array) { 

      //here is the body of the previously declared method

   }
}

, но это решение не решает проблему, заключающуюся в том, чтоМетод должен игнорировать другие объекты, которые не реализуют этот интерфейс.Не могли бы вы помочь мне?

1 Ответ

0 голосов
/ 06 октября 2018

Вы можете использовать if (x instanceof ObjectWithArea) для проверки того, следует ли игнорировать объект, а затем приведение ((ObjectWithArea)x).getArea() к тем, что вам нужно обработать.

Альтернатива, которая позволяет избежать необходимости делать это(instanceof немного противоречиво - но не вступайте в драку со своим учителем из-за этого), было бы иметь метод getArea на всех объектах и ​​возвращать 0 для тех, у кого нет области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...