dart
Klassen
Suche…
Eine Klasse erstellen
Klassen können wie folgt erstellt werden:
class InputField {
int maxLength;
String name;
}
Die Klasse kann mit dem new Schlüsselwort instanziiert werden, wonach die Feldwerte standardmäßig null sind.
var field = new InputField();
Auf Feldwerte kann dann zugegriffen werden:
// this will trigger the setter
field.name = "fieldname";
// this will trigger the getter
print(field.name);
Mitglieder
Eine Klasse kann Mitglieder haben.
Instanzvariablen können mit / ohne Typanmerkungen deklariert und optional initialisiert werden. Nicht initialisierte Member haben den Wert null , sofern vom Konstruktor kein anderer Wert festgelegt wurde.
class Foo {
var member1;
int member2;
String member3 = "Hello world!";
}
Klassenvariablen werden mit dem Schlüsselwort static deklariert.
class Bar {
static var member4;
static String member5;
static int member6 = 42;
}
Wenn eine Methode keine Argumente annimmt, schnell ist, einen Wert zurückgibt und keine sichtbaren Nebeneffekte aufweist, kann eine Getter-Methode verwendet werden:
class Foo {
String get bar {
var result;
// ...
return result;
}
}
Getter nehmen niemals Argumente an, daher werden die Klammern für die (leere) Parameterliste sowohl zum Deklarieren von Gettern wie oben als auch zum Aufrufen wie folgt ausgelassen:
main() {
var foo = new Foo();
print(foo.bar); // prints "bar"
}
Es gibt auch Setter-Methoden, die genau ein Argument enthalten müssen:
class Foo {
String _bar;
String get bar => _bar;
void set bar(String value) {
_bar = value;
}
}
Die Syntax für den Aufruf eines Setters entspricht der Variablenzuweisung:
main() {
var foo = new Foo();
foo.bar = "this is calling a setter method";
}
Konstrukteure
Ein Klassenkonstruktor muss denselben Namen wie seine Klasse haben.
Erstellen Sie einen Konstruktor für eine Klasse Person:
class Person {
String name;
String gender;
int age;
Person(this.name, this.gender, this.age);
}
Das obige Beispiel ist eine einfachere und bessere Möglichkeit, den Konstruktor zu definieren, als die folgende, auch mögliche Methode:
class Person {
String name;
String gender;
int age;
Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
}
Jetzt können Sie eine Instanz von Person wie folgt erstellen:
var alice = new Person('Alice', 'female', 21);