Практическая статья для новичков на Java 11 Мы напишем консольный симулятор лифта, где каждый принцип ООП будет не «теорией из учебника», а решением реальной проблемы. Код простой, но честный — без упрощений, которые вводят в заблуждение. Представьте: вы приходите в новый офис. Видите кнопки вызова, табло с номером этажа, звук «динь». Вы не знаете, как устроен механизм — и вам не нужно знать! Вы просто нажимаете «5» → лифт едет на 5-й этаж. Это и есть суть ООП: Давайте построим эту систему шаг за шагом. Проблема без инкапсуляции:
Если сделать поля currentFloor и direction публичными, любой код сможет написать: elevator.currentFloor = 999; // Лифт на 999-м этаже? В 10-этажном здании?! Решение: спрятать состояние и дать контролируемый доступ. 💡 Почему это инкапсуляция?
Лифт сам управляет своей логикой: нельзя открыть двери на ходу, нельзя уехать на несуществующий этаж. Внешний код взаимодействует только через goToFloor() — как настоящий пользователь лифта. Проблема без наследования:
Гру