🧑🏫10. Инкапсуляция
Зачем нужна инкапсуляция?
Как создавать инкапсуляцию в Dart
Примеры с аналогиями
class BankAccount { double _balance = 0; // приватная переменная void deposit(double amount) { if (amount > 0) { _balance += amount; } } void withdraw(double amount) { if (amount > 0 && amount <= _balance) { _balance -= amount; } } double get balance => _balance; // геттер для доступа к балансу }class Phone { bool _isCharged = true; // приватная переменная void makeCall(String number) { if (_isCharged) { print('Звоним на $number'); } else { print('Батарея разряжена'); } } }class Car { bool _engineRunning = false; // приватное состояние двигателя void startEngine() { _engineRunning = true; } void drive() { if (_engineRunning) { print('Машина едет'); } else { print('Сначала запустите двигатель'); } } }class RobotVacuum { bool _isBatteryCharged = true; void startCleaning() { if (_isBatteryCharged) { print('Начинаю уборку'); } else { print('Нужно зарядить батарею'); } } }class EBookReader { String _bookContent = "Содержание книги..."; void openBook() { print("Книга открыта"); } void turnPage() { print("Переворачиваем страницу"); } }
Резюме
Пример:
Почему использовать инкапсуляцию?
Структура приложения
Код приложения
Объяснение кода
Аналогия
Заключение
Last updated