Поиск…
Создание класса
Классы могут быть созданы следующим образом:
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);