Практические задания - Урок 17: Конструкторы
Инструкция: Решите все задания по порядку. Создайте отдельный файл .dart для каждой задачи или решите все в одном файле, разделяя задачи комментариями.
Задача № 1: Конструкторы для класса Car
Создайте класс Car для представления автомобиля, используя различные виды конструкторов.
Требования:
- Класс должен иметь свойства:
brand(String),model(String), иyear(int). - Создайте основной конструктор с обязательными именованными параметрами (
required). - Создайте именованный конструктор
Car.specialEdition, который принимаетbrandиmodel, а в качестве года (year) устанавливает значение 2025. - Создайте метод
displayInfo(), который выводит в консоль полную информацию об автомобиле.
Задание:
- Создайте объект
Carс помощью основного конструктора. - Создайте объект
Carс помощью именованного конструктораCar.specialEdition. - Вызовите метод
displayInfo()у обоих объектов, чтобы показать их данные.
Примерный вывод в консоли
Brand: Toyota, Model: Camry, Year: 2023
Brand: Honda, Model: Civic, Year: 2025
Задача № 2: Singleton для настроек приложения
Реализуйте класс AppSettings с использованием шаблона Синглтон (Singleton), чтобы гарантировать, что в приложении существует только один экземпляр этого класса.
Требования:
- Класс должен иметь приватный конструктор
_internal(). - Класс должен использовать статическое (
static) поле для хранения единственного экземпляра. - Используйте фабричный конструктор (
factory) для создания или возврата существующего экземпляра. - Добавьте в класс несколько свойств, например,
theme(String, по умолчанию "light") иlanguage(String, по умолчанию "en").
Задание:
- В функции
mainполучите два экземпляра классаAppSettingsв разные переменные. - Измените свойство
themeу первого экземпляра на "dark". - Выведите свойство
themeиз второго экземпляра — оно должно отражать изменения. - Проверьте с помощью функции
identical(), что обе переменные ссылаются на один и тот же объект.
Примерный вывод в консоли
Theme from second instance: dark
Are instances identical? true