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);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow