объекты класса Коробка должны иметь размеры и цвет. Коробку можно открывать и закрывать. Коробку можно перекрашивать. Изменить размер коробки после создания нельзя. У коробки должен быть метод, печатающий информацию о ней в консоль. В коробку можно складывать предмет (если в ней нет предмета), или выкидывать его оттуда (только если предмет в ней есть), только при условии что коробка открыта (предметом читаем просто строку). Выполнение методов должно сопровождаться выводом сообщений в консоль.
java
public class Box {
private int width;
private int height;
private int length;
private String color;
private boolean isOpen;
private String item;
public Box(int width, int height, int length, String color) {
this.width = width;
this.height = height;
this.length = length;
this.color = color;
this.isOpen = false;
this.item = null;
}
public void printInfo() {
System.out.println("Box Info:");
System.out.println("Width: " + width);
System.out.println("Height: " + height);
System.out.println("Length: " + length);
System.out.println("Color: " + color);
System.out.println("Is Open: " + isOpen);
if (isOpen) {
System.out.println("Item: " + item);
}
}
public void open() {
if (!isOpen) {
isOpen = true;
System.out.println("Box is now open");
} else {
System.out.println("Box is already open");
}
}
public void close() {
if (isOpen) {
isOpen = false;
System.out.println("Box is now closed");
} else {
System.out.println("Box is already closed");
}
}
public void repaint(String newColor) {
color = newColor;
System.out.println("The box has been repainted to " + color);
}
public void putItem(String item) {
if (isOpen) {
if (this.item == null) {
this.item = item;
System.out.println("The item has been put into the box: " + item);
} else {
System.out.println("The box already contains an item");
}
} else {
System.out.println("The box must be open to put an item");
}
}
public void removeItem() {
if (isOpen) {
if (item != null) {
item = null;
System.out.println("The item has been removed from the box");
} else {
System.out.println("The box is empty");
}
} else {
System.out.println("The box must be open to remove an item");
}
}
}
В данном коде класс "Коробка" имеет приватные поля для хранения размеров (ширина, высота, длина), цвета, состояния (открыта/закрыта), и предмета внутри коробки. Конструктор класса принимает размеры и цвет и инициализирует соответствующие поля. Поле состояния открытой/закрытой коробки задается значением false при создании объекта. Наличие предмета внутри коробки указывается значением null.
Метод `printInfo()` выводит информацию о коробке в консоль. Методы `open()` и `close()` открывают и закрывают коробку соответственно, а метод `repaint()` перекрашивает коробку в заданный цвет.
Методы `putItem()` и `removeItem()` предназначены для добавления и удаления предмета внутри коробки. Однако, действия выполняются только в случае, если коробка открыта. Если коробка уже содержит предмет и выполняется метод `putItem()`, то выдается сообщение об ошибке, аналогично, если выполняется метод `removeItem()` и коробка пуста. В конце каждого метода выводится соответствующее сообщение в консоль, чтобы пользователь видел результат.
Пример использования класса "Коробка":
java
public class Main {
public static void main(String[] args) {
Box box = new Box(10, 20, 30, "red");
box.printInfo(); // Вывод информации о коробке
box.open(); // Открытие коробки
box.putItem("book"); // Помещение предмета в коробку
box.printInfo(); // Вывод информации о коробке
box.close(); // Закрытие коробки
box.remove("book"); // Удаление предмета из коробки
box.repaint("blue"); // Перекраска коробки
box.printInfo(); // Вывод информации о коробке
}
}
В результате выполнения данного кода будет выведена информация о созданной коробке, действия с коробкой будут выполнены и соответствующие сообщения будут выведены в консоль. Например, после выполнения метода `open()` будет выведено сообщение "Box is now open". Полная информация о коробке будет содержаться в консоли после вызова метода `printInfo()`.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет