Java → Классы: Холодильник и Еда
Задача: Написать класс Холодильник, в который можно класть Еду, проверять заполненность и т.п.
Решение:
Создаем класс Food представляющий Еду
public class Food {
public String name;
public int size = 10;
public Food(String name, int size){
this.name = name;
this.size = size;
}
}
У Еды есть название и объем.
Создаем класс Холодильник
import java.util.ArrayList;
import java.util.List;
public class Fridge {
public int capacity = 100;
public List<Food> foods = new ArrayList<>();
public void put(Food food){
foods.add(food);
}
public int getTotalSizeOfFoods(){
int sum = 0;
for(Food food: foods){
sum += food.size;
}
return sum;
}
public boolean hasSpaceFor(Food food){
int freeSpace = capacity - getTotalSizeOfFoods();
if(freeSpace >= food.size){
return true;
}else{
return false;
}
}
}
У него есть емкость и список Еды внутри него.
Теперь создаем класс с точкой входа, в котором будем использовать наши классы:
public class ClassWork2 {
public static void main(String[] args) {
Fridge fridge = new Fridge();
Food pizza = new Food("Pizza", 45);
if(fridge.hasSpaceFor(pizza)){
fridge.put(pizza);
}
Food food = new Food("Shaurma", 65);
if(fridge.hasSpaceFor(food)){
fridge.put(food);
System.out.println(food.name+ " have been put into Fridge");
}else{
System.out.println("There is no free space for " + food.name);
}
}
}