Введение в ООП
Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 3 из 110.
Объектно-ориентированное программирование (ООП) организует код вокруг объектов, которые содержат данные (переменные экземпляра) и функции (методы).
Создайте файл с названием car.dart с классом
class Car {
// пустое тело класса
}Создайте еще один файл с названием driver.dart, чтобы использовать этот класс
import 'car.dart';Создайте объект класса Car, используя имя класса, за которым следуют круглые скобки
void main() {
Car myCar = Car();
}Проверьте тип вашего объекта с помощью runtimeType
print(myCar.runtimeType);Вывод:
CarЭто подтверждает, что вы успешно создали объект из вашего класса Car. В ООП класс подобен чертежу, а объект — это то, что вы строите по этому чертежу. В Dart вы создаете объекты, вызывая имя класса как функцию: Car().
Задание
СреднеВ этом испытании вы будете использовать класс Car, определенный в car.dart, и создадите его объект в driver.dart.
Обновите driver.dart, чтобы:
- Создать объект класса
Carс помощьюCar()и сохранить его в переменной с именемmyCar
Файл драйвера выведет runtimeType для проверки вашей реализации.
Шпаргалка
Объектно-ориентированное программирование (ООП) организует код вокруг объектов, которые содержат данные (переменные экземпляра) и функции (методы).
Класс подобен чертежу, а объект — это то, что вы создаете по этому чертежу.
Определите класс:
class Car {
// пустое тело класса
}Импортируйте класс из другого файла:
import 'car.dart';Создайте объект из класса, используя имя класса, за которым следуют круглые скобки:
Car myCar = Car();Проверьте тип объекта с помощью runtimeType:
print(myCar.runtimeType); // Вывод: CarПопробуйте сами
import 'car.dart';
void main() {
// TODO: Создайте объект Car с именем myCar
Car myCar = ?;
print(myCar.runtimeType);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыБиблиотеки и импортВведение в ООПКлассы и объектыКлючевое слово thisМетодыПеременные экземпляраОсновы конструкторовИтоги — Простой калькулятор4Null-безопасность
Введение в Null-безопасностьNullable и Non-Nullable типыОператоры ? и !Ключевое слово Late и Null-безопасностьNull-aware операторыNull-безопасность в классахИтоги — Система профилей пользователей7Абстрактные классы и интерфейсы
Абстрактные классыАбстрактные методыИнтерфейсы в DartНеявные интерфейсыРеализация против наследованияМножественные интерфейсыИтоги — Калькулятор фигур10Коллекции и обобщения
Обзор List, Set, MapТипобезопасные коллекцииОбобщенные классыОбобщенные методыОграничения обобщенийIterable и IteratorИтоги: Обобщенное хранилище13Продвинутые концепции ООП
Композиция против наследованияМетоды расширенияВызываемые классыЗапечатанные классы (Dart 3)Записи (Dart 3)Паттерны и сопоставление (3.0)Перечисления с методами16Проект: Управление библиотекой
Обзор проектаКлассы Book и User2Конструкторы в Dart
Конструктор по умолчаниюИменованные конструкторыСписки инициализацииКонстантные конструкторыФабричные конструкторыПеренаправляющие конструкторыИтоги — Shape Builder5Инкапсуляция
Публичные и приватные членыСоглашение о префиксе _Приватность на уровне библиотекГеттеры и сеттеры: подробный разборСкрытие данныхИтоги — Записи о студентах8Mixins
Введение в MixinsСоздание MixinsИспользование нескольких MixinsКлючевое слово on в MixinsMixin и наследованиеMixin и интерфейсИтоги: Система животных11Специальные методы
Переопределение toString()Переопределение hashCode и ==Интерфейс ComparableМетод call()Переопределение noSuchMethodПовторение — Пользовательская коллекция14Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy3Свойства классов
Члены экземпляра и статические членыПоля Final и ConstПеременные LateСтатические методы и поляГеттеры и сеттерыИтоги — Менеджер банковского счета6Наследование
Основы наследованияКлючевое слово superПереопределение методовАннотация @overrideКлючевое слово final для классовКонструкторы и наследованиеИтоги: Иерархия сотрудников9Полиморфизм
Основы полиморфизмаПолиморфизм через интерфейсыПроверка типов во время выполненияОператоры is и asКлючевое слово covariantИтоги — Обработчик платежей12Асинхронное ООП
Futures и async/awaitОсновы StreamsКонтроллеры StreamАсинхронные конструкторыАсинхронность в методах классовИтоги — Data Fetcher15Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн КомпоновщикПаттерн Репозиторий