РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
103 of 723 menu

Именованный конструктор

Именованный конструктор в Dart - это конструктор, который имеет собственное имя, отличное от имени класса. Это позволяет создавать несколько конструкторов для одного класса, каждый из которых может принимать разный набор параметров и выполнять разную логику инициализации. Именованный конструктор объявляется через имя класса, за которым следует точка и имя конструктора. В первом параметре мы передаем значение для инициализации соответствующего поля, во втором - следующее значение и так далее.

Синтаксис

class ClassName { ClassName.namedConstructor(parameters) { // body } }

Пример

Давайте создадим класс Point с именованным конструктором Point.origin, который создает точку в начале координат:

class Point { double x; double y; Point(this.x, this.y); Point.origin() { x = 0; y = 0; } } void main() { Point p = Point.origin(); print('${p.x}, ${p.y}'); }

Результат выполнения кода:

"0.0, 0.0"

Пример

Давайте создадим именованный конструктор с параметрами, который принимает координаты и создает точку:

class Point { double x; double y; Point(this.x, this.y); Point.fromCoordinates(this.x, this.y); } void main() { Point p = Point.fromCoordinates(1, 2); print('${p.x}, ${p.y}'); }

Результат выполнения кода:

"1.0, 2.0"

Пример

Давайте создадим класс с несколькими именованными конструкторами для разных сценариев:

class User { String name; int age; User(this.name, this.age); User.guest() { name = 'abcde'; age = 0; } User.admin() { name = '12345'; age = 30; } } void main() { User u1 = User.guest(); User u2 = User.admin(); print('${u1.name}, ${u1.age}'); print('${u2.name}, ${u2.age}'); }

Результат выполнения кода:

"abcde, 0" "12345, 30"

Смотрите также

  • конструктор объявление класса,
    который создает экземпляр класса
  • initializer list,
    который инициализирует поля до тела конструктора
  • redirecting constructor,
    который перенаправляет вызов другому конструктору
  • factory,
    который создает фабричный конструктор
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить