Zoeken…


Een klas maken

Klassen kunnen als volgt worden gemaakt:

class InputField {
  int maxLength;
  String name;
}

De klasse kan worden geïnstantieerd met het new trefwoord, waarna de veldwaarden standaard nul zijn.

var field = new InputField();

Veldwaarden zijn dan toegankelijk:

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

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

leden

Een klas kan leden hebben.

Instantievariabelen kunnen worden gedeclareerd met / zonder type-annotaties en optioneel worden geïnitialiseerd. Niet-geïnitialiseerde leden hebben de waarde null , tenzij de constructor een andere waarde instelt.

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

Klasse variabelen worden gedeclareerd met behulp van het static trefwoord.

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

Als een methode geen argumenten aanneemt, snel is, een waarde retourneert en geen zichtbare bijwerkingen heeft, kan een getter-methode worden gebruikt:

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

Getters nemen nooit argumenten, dus de haakjes voor de (lege) parameterlijst worden weggelaten zowel voor het aangeven van getters, zoals hierboven, als voor het aanroepen van ze als volgt:

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

Er zijn ook setter-methoden, die precies één argument moeten bevatten:

class Foo {
  String _bar;

  String get bar => _bar;

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

De syntaxis voor het aanroepen van een setter is hetzelfde als de variabele toewijzing:

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

constructors

Een klassenbouwer moet dezelfde naam hebben als zijn klasse.

Laten we een constructor maken voor een klasse Persoon:

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

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

Het bovenstaande voorbeeld is een eenvoudigere, betere manier om de constructor te definiëren dan de volgende manier, wat ook mogelijk is:

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

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

Nu kunt u een exemplaar van Persoon als volgt maken:

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow