Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save karabanovbs/ac42aff75ca089f2bf1288d36996eaa6 to your computer and use it in GitHub Desktop.
Save karabanovbs/ac42aff75ca089f2bf1288d36996eaa6 to your computer and use it in GitHub Desktop.
// 2.6 Классы
// Велосипед
// Создайте класс велосипеда по следующей схеме:
// Велосипед состоит из следующих частей
// Bike - управляющий класс велосипеда. В нем инкапсулированы детали, из которых состоит велосипед - колеса и руль. Содержит методы
// run - приводит в движения колеса. После запуска колес оповещает пользователя "Велосипед пришел в движение"
// stop - останавливает колеса. После остановки колес вывести на консоль "Велосипед остановлен"
// turn - поворачивает велосипед при помощи руля. Поддерживает повороты с названиями "right", "left", "up". Вывести на консоль сторону поворота.
// Wheel - колеса велосипеда. Колесо содержит название(заднее и переднее) Содержит метод:
// rotate - вращение колес. Вывести на консоль "колесо $name начало вращение"
// stop - остановка колес. Вывести на консоль "колесо $name остановилось"
// Controller - руль. Содержит методы:
// turn - вывести на консоль сторону поворота.
// Все внутренние поля объектов должны быть приватны, а доступ к ним должен осуществляться через соответствующие методы.
// После описания велосипеда создать экземпляр класса Bike, вызвать методы управления. Полученный результат вывести в комментариях.
class Side {
static String right = 'right';
static String left = 'left';
static String up = 'up';
}
class Bike {
final Wheel _wheel1 = Wheel('1');
final Wheel _wheel2 = Wheel('2');
final Controller _controller = Controller();
void run() {
_wheel1.rotate();
_wheel2.rotate();
print("Велосипед пришел в движение");
}
void stop() {
_wheel1.stop();
_wheel2.stop();
print("Велосипед остановлен");
}
void turn(String side) {
print(side);
_controller.turn(side);
}
}
class Wheel {
final String _name;
Wheel(this._name);
void rotate() {
print("колесо $_name начало вращение");
}
void stop() {
print("колесо $_name остановилось");
}
}
class Controller {
void turn(String side) {
print(side);
}
}
void main() {
var bike = Bike();
bike.run();
bike.turn(Side.right);
bike.turn(Side.left);
bike.turn(Side.up);
bike.stop();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment