Внешние файлы
Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 1 из 110.
Внешние файлы позволяют организовывать классы в отдельных файлах Dart и импортировать их в основную программу.
Создайте отдельный Dart-файл с названием my_class.dart
class MyClass {
// тело класса
}Импортируйте файл в ваш основной файл, используя директиву import
import 'my_class.dart';Теперь вы можете использовать этот класс в вашем основном файле
void main() {
MyClass obj = MyClass();
print(obj.runtimeType);
}Вывод:
MyClassИнструкция import 'my_class.dart'; подключает файл my_class.dart к вашей программе. Имя файла должно включать расширение .dart и быть заключено в одинарные кавычки. Dart разрешает путь относительно текущего файла.
Задание
СреднеВам даны два файла Dart (my_class.dart и driver.dart). Добавьте правильную инструкцию import в driver.dart, чтобы соединить файлы и можно было использовать MyClass!
Шпаргалка
Чтобы использовать классы из внешних файлов, создайте отдельные файлы Dart и импортируйте их с помощью директивы import:
Создайте отдельный файл (например, my_class.dart):
class MyClass {
// тело класса
}Импортируйте файл в вашу основную программу:
import 'my_class.dart';Имя файла должно включать расширение .dart и быть заключено в одинарные кавычки. Dart разрешает путь относительно текущего файла.
Используйте импортированный класс:
void main() {
MyClass obj = MyClass();
print(obj.runtimeType);
}Попробуйте сами
// TODO: Импортируйте my_class.dart
import 'dart:io';
void main() {
String testCase = stdin.readLineSync()!;
MyClass obj = MyClass();
print('Test completed');
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
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
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн КомпоновщикПаттерн Репозиторий