Приветствую!
Хочу поделиться своим опытом использования классов Fruit‚ Apple и Orange‚ а также класса Box в Java․
В начале‚ я создал класс Fruit․ Он является базовым классом для классов Apple и Orange․ В классе Fruit есть только одно поле ⎼ вес фрукта․ Чтобы задать вес фрукта‚ я использовал конструктор‚ который принимает значение веса и сохраняет его в поле․
Далее‚ я создал два класса-наследника⁚ Apple и Orange․ Оба класса наследуют свойства и методы от класса Fruit․ Однако‚ для каждого фрукта я установил соответствующий вес․ Для яблока ‒ вес равен 1․0f‚ а для апельсина ‒ 1․5f․
Затем‚ я перешел к классу Box․ В этом классе я создал поле‚ которое представляет собой список фруктов․ Чтобы добавить фрукты в коробку‚ я использовал метод add․ Метод принимает объект фрукта и добавляет его в список․
Для вычисления общего веса коробки я создал метод getWeight․ Метод пробегает по списку фруктов и суммирует их веса․ Вес каждого фрукта я получаю через геттер‚ который определен в классе Fruit․
Для сравнения веса текущей коробки с другой коробкой‚ я создал метод compare․ Метод принимает в качестве параметра другую коробку и сравнивает их веса․ Если веса равны‚ то метод возвращает true‚ в противном случае ⎼ false․
Чтобы перенести фрукты из текущей коробки в другую коробку‚ я создал метод transfer․ Метод принимает в качестве параметра другую коробку и переносит все фрукты из текущей коробки в нее․ Для этого я просто добавил все фрукты из текущей коробки в список фруктов другой коробки‚ а затем очистил список текущей коробки․
Наконец‚ чтобы добавить фрукты в коробку‚ я создал метод addFruits․ Метод принимает объект фрукта и количество фруктов‚ которые нужно добавить․ Затем я просто вызываю метод add нужное количество раз․
Вот как моя реализация классов Fruit‚ Apple‚ Orange и Box может выглядеть⁚
java
class Fruit {
private float weight;
public Fruit(float weight) {
this․weight weight;
}
public float getWeight {
return weight;
}
}
class Apple extends Fruit {
public Apple {
super(1․0f);
}
}
class Orange extends Fruit {
public Orange {
super(1․5f);
}
}
class Box {
private List
public Box {
this․fruits new ArrayList<>;
}
public void add(Fruit fruit) {
fruits․add(fruit);
}
public float getWeight {
float weight 0;
for (Fruit fruit ⁚ fruits) {
weight fruit․getWeight;
}
return weight;
}
public boolean compare(Box otherBox) {
return this․getWeight otherBox․getWeight;
}
public void transfer(Box otherBox) {
otherBox․fruits․addAll(this․fruits);
this․fruits․clear;
}
public void addFruits(Fruit fruit‚ int count) {
for (int i 0; i < count; i ) {
fruits․add(fruit);
}
}
}
Я протестировал мой код на различных примерах и получил ожидаемые результаты․ Все работает отлично․ Теперь я могу легко создавать коробки с фруктами‚ сравнивать их веса и переносить фрукты из одной коробки в другую․
Надеюсь‚ что мой опыт использования классов Fruit‚ Apple‚ Orange и Box поможет и вам․ Удачи!