- Документация
- Основы Dart 2.x
- Основы Dart 2.x (Классы и объекты)
За последние 30 дней: 89 просмотров, 36 посетителей.
Основы Dart 2.x (Классы и объекты)
- Dart является объектно-ориентированным языком, но в нем присутствуют некоторые отличия данной парадигмы от Java\C#.
- Dart нет специальных ключевых слов (public; private; protected) то есть спецификаторов доступа, по этому все идентификаторы «публичны» по умолчанию. Вопрос инкапсуляции решен соглашением: приватными считаются все члены класса, чье имя начинается с подчеркивания "_".
Классы и объекты
ООП - парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
Объект — это сущность (экземпляр класса), которой можно посылать сообщения и которая может на них реагировать, используя свои данные. Объект может обладать двумя основными характеристиками: состояние - некоторые данные которые хранит объект (поля или переменные класса), и поведение - действия, которые может совершать объект (методы).
Пример программы на Dart:
Конструкторы
Кроме обычных методов, классы могут определять специальные методы, которые называются конструкторами. Конструкторы вызываются при создании нового объекта данного класса. Конструкторы выполняют инициализацию объекта.
Разберем 2-ю строчку кода:
Самое первое мы пишем имя класса ToyotaCars, далее имя создаваемого объекта corolla и через оператор присвоения (=) метод без параметров ToyotaCars() - он же и есть наш конструктор, который выполнить инициализацию нашего объекта corolla.
Конструктор с параметрами
Если необходимо что бы при создании объекта поля класса получали какие-то определенные значения тогда используется конструктор с параметрами:
Ключевое слово this - всегда служит ссылкой на объект, для которого был вызван метод. Ключевое слово this можно использовать везде, где допускается ссылка на объект типа текущего класса.
Пример:
Либо с помощью this, мы можем сократить определение конструктора:
Именованные конструкторы
По умолчанию мы можем определить только один общий конструктор. Если же нам необходимо использовать в классе сразу несколько конструкторов, тогда необходимо применять именованные конструкторы, это выглядит как дополнительное имя конструктору, через точку от имени класса.
Например: