Практика на композицию в Java
Сделайте класс Address с полем city.
Сделайте класс Employee с полем address.
Создайте сотрудника в городе "Oslo"
и выведите название города.
Сделайте класс Product с полями name
и price.
Сделайте класс Order, принимающий
список Product в конструкторе.
Дан заказ из двух товаров 10 и 25.
Выведите сумму price.
Сделайте класс Author с полем name.
Сделайте класс Document с полем author
и методом byLine(), возвращающим
"by " и имя автора.
Выведите строку для автора "Ann".
Даны классы:
class Formatter {
String title(String text) {
return "=== " + text + " ===";
}
}
class Employee {
private final String headline;
private final Formatter formatter;
Employee(String headline, Formatter formatter) {
this.headline = headline;
this.formatter = formatter;
}
void printTitle() {
System.out.println(formatter.title(headline));
}
}
Создайте пост "News" с новым Formatter
и выведите оформленный заголовок.
Сделайте интерфейс Clock с методом now().
Сделайте класс FixedClock, возвращающий
фиксированное время.
Сделайте класс ClockPanel, который хранит
Clock и в методе show()
выводит now().
Проверьте для времени "09:00".
Сделайте интерфейс Printer с методом print().
Сделайте класс ConsolePrinter, который
выводит "ok".
Сделайте класс User с полем Printer
и методом report(), вызывающим print()
у вложенного принтера.
Подмените реализацию на другую, возвращающую
"fail", и выведите оба результата.
Сделайте класс Engine с методом power().
Сделайте класс Car с полем Engine,
не наследуя Engine.
Создайте автомобиль с мощностью 150
и выведите power() через метод Car.
Сделайте класс Wallet с методами pay(int)
и balance().
Сделайте класс ShopCart с полем Wallet
и методом checkout(int sum),
который списывает сумму из кошелька.
Пополните кошелёк до 100, оплатите 30
и выведите остаток.
Сделайте класс Shape с методом area().
Сделайте класс ShapeGroup со списком Shape
и методом totalArea().
Добавьте квадрат 2×2 и прямоугольник 3×4.
Выведите суммарную площадь.