Szukaj…
Tworzenie klasy
Klasy można tworzyć w następujący sposób:
class InputField {
int maxLength;
String name;
}
Klasa może zostać utworzona za pomocą new słowa kluczowego, po którym wartości pola będą domyślnie zerowe.
var field = new InputField();
Następnie można uzyskać dostęp do wartości pól:
// this will trigger the setter
field.name = "fieldname";
// this will trigger the getter
print(field.name);
Członkowie
Klasa może mieć członków.
Zmienne instancji mogą być deklarowane z / bez adnotacji typu i opcjonalnie inicjowane. Niezainicjowani członkowie mają wartość null , chyba że konstruktor ustawi inną wartość.
class Foo {
var member1;
int member2;
String member3 = "Hello world!";
}
Zmienne klas deklarowane są za pomocą słowa kluczowego static .
class Bar {
static var member4;
static String member5;
static int member6 = 42;
}
Jeśli metoda nie przyjmuje argumentów, jest szybka, zwraca wartość i nie ma widocznych efektów ubocznych, można zastosować metodę gettera:
class Foo {
String get bar {
var result;
// ...
return result;
}
}
Gettery nigdy nie przyjmują argumentów, więc nawiasy dla (pustej) listy parametrów są pomijane zarówno w przypadku deklarowania getterów, jak powyżej, jak i wywoływania ich, tak jak poniżej:
main() {
var foo = new Foo();
print(foo.bar); // prints "bar"
}
Istnieją również metody ustawiające, które muszą przyjąć dokładnie jeden argument:
class Foo {
String _bar;
String get bar => _bar;
void set bar(String value) {
_bar = value;
}
}
Składnia wywołania settera jest taka sama jak przypisanie zmiennej:
main() {
var foo = new Foo();
foo.bar = "this is calling a setter method";
}
Konstruktory
Konstruktor klasy musi mieć taką samą nazwę jak jego klasa.
Stwórzmy konstruktora dla klasy Osoba:
class Person {
String name;
String gender;
int age;
Person(this.name, this.gender, this.age);
}
Powyższy przykład jest prostszym, lepszym sposobem zdefiniowania konstruktora niż następujący sposób, który jest również możliwy:
class Person {
String name;
String gender;
int age;
Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
}
Teraz możesz utworzyć instancję Osoby w ten sposób:
var alice = new Person('Alice', 'female', 21);