Created
November 29, 2020 04:06
-
-
Save karabanovbs/ac42aff75ca089f2bf1288d36996eaa6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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