Sök…


Skapa en klass

Klasser kan skapas enligt följande:

class InputField {
  int maxLength;
  String name;
}

Klassen kan instanseras med det new nyckelordet, varefter fältvärdena kommer att vara noll som standard.

var field = new InputField();

Fältvärden kan sedan nås:

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

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

medlemmar

En klass kan ha medlemmar.

Instansvariabler kan deklareras med / utan typanteckningar och eventuellt initialiseras. Oinitialiserade medlemmar har värdet null , såvida det inte är satt till ett annat värde av konstruktören.

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

Klassvariabler deklareras med hjälp av det static nyckelordet.

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

Om en metod inte tar några argument, är snabb, returnerar ett värde och inte har synliga biverkningar, kan en getter-metod användas:

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

Getters tar aldrig argument, så parenteserna för (tom) parameterlista utelämnas både för att deklarera getters, som ovan, och för att kalla dem, som så:

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

Det finns också setmetoder som måste ta exakt ett argument:

class Foo {
  String _bar;

  String get bar => _bar;

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

Syntaxen för att ringa en setter är densamma som variabel tilldelning:

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

konstruktörer

En klasskonstruktör måste ha samma namn som sin klass.

Låt oss skapa en konstruktör för en klassperson:

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

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

Exemplet ovan är ett enklare, bättre sätt att definiera konstruktören än följande sätt, vilket också är möjligt:

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 kan du skapa en instans av Person som denna:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow