Поиск…


Создание класса

Классы могут быть созданы следующим образом:

class InputField {
  int maxLength;
  String name;
}

Класс может быть создан с использованием new ключевого слова, после которого значения полей по умолчанию будут пустыми.

var field = new InputField();

Значения поля могут быть доступны:

// this will trigger the setter
field.name = "fieldname";

// this will trigger the getter
print(field.name);

члены

У класса могут быть члены.

Переменные экземпляра могут быть объявлены с аннотациями / без типов и, возможно, инициализированы. Неинициализированные члены имеют значение null , если конструктор не устанавливает другое значение.

class Foo {
  var member1;
  int member2;
  String member3 = "Hello world!";
}

Переменные класса объявляются с использованием ключевого слова static .

class Bar {
  static var member4;
  static String member5;
  static int member6 = 42;
}

Если метод не принимает аргументов, он быстро, возвращает значение и не имеет видимых побочных эффектов, тогда можно использовать метод геттера:

class Foo {
  String get bar {
    var result;
    // ...
    return result;
  }
}

Getters никогда не принимают аргументы, поэтому круглые скобки для (пустых) списков параметров опущены как для объявления геттеров, так и выше, и для их вызова:

main() {
  var foo = new Foo();
  print(foo.bar); // prints "bar"
}

Существуют также методы setter, которые должны принимать ровно один аргумент:

class Foo {
  String _bar;

  String get bar => _bar;

  void set bar(String value) {
    _bar = value;
  }
}

Синтаксис для вызова сеттера такой же, как назначение переменной:

main() {
  var foo = new Foo();
  foo.bar = "this is calling a setter method";
}

Конструкторы

Конструктор класса должен иметь то же имя, что и его класс.

Давайте создадим конструктор для класса Person:

class Person {
  String name;
  String gender;
  int age;

  Person(this.name, this.gender, this.age);
}

Приведенный выше пример - это более простой и эффективный способ определения конструктора, чем следующий способ, который также возможен:

class Person {
  String name;
  String gender;
  int age;

  Person(String name, String gender, int age) {
    this.name = name;
    this.gender = gender;
    this.age = age;
  }
}

Теперь вы можете создать экземпляр Person следующим образом:

var alice = new Person('Alice', 'female', 21);


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow