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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow