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