Ricerca…
Creare una classe
Le classi possono essere create come segue:
class InputField {
int maxLength;
String name;
}
La classe può essere istanziata usando la new parola chiave dopo la quale i valori del campo saranno nulli di default.
var field = new InputField();
È possibile accedere ai valori del campo:
// this will trigger the setter
field.name = "fieldname";
// this will trigger the getter
print(field.name);
Utenti
Una classe può avere membri.
Le variabili di istanza possono essere dichiarate con / senza annotazioni di tipo e facoltativamente inizializzate. I membri non inizializzati hanno il valore null , a meno che non siano impostati su un altro valore dal costruttore.
class Foo {
var member1;
int member2;
String member3 = "Hello world!";
}
Le variabili di classe sono dichiarate usando la parola chiave static .
class Bar {
static var member4;
static String member5;
static int member6 = 42;
}
Se un metodo non accetta argomenti, è veloce, restituisce un valore e non ha effetti collaterali visibili, quindi è possibile utilizzare un metodo getter:
class Foo {
String get bar {
var result;
// ...
return result;
}
}
I getter non accettano mai argomenti, quindi le parentesi per l'elenco dei parametri (vuoto) vengono omesse sia per dichiarare i getter, come sopra, sia per chiamarli, in questo modo:
main() {
var foo = new Foo();
print(foo.bar); // prints "bar"
}
Ci sono anche metodi setter, che devono prendere esattamente un argomento:
class Foo {
String _bar;
String get bar => _bar;
void set bar(String value) {
_bar = value;
}
}
La sintassi per chiamare un setter è la stessa dell'assegnazione variabile:
main() {
var foo = new Foo();
foo.bar = "this is calling a setter method";
}
Costruttori
Un costruttore di classi deve avere lo stesso nome della sua classe.
Creiamo un costruttore per una classe Persona:
class Person {
String name;
String gender;
int age;
Person(this.name, this.gender, this.age);
}
L'esempio sopra è un modo più semplice e migliore per definire il costruttore rispetto al modo seguente, che è anche possibile:
class Person {
String name;
String gender;
int age;
Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
}
Ora puoi creare un'istanza di Person in questo modo:
var alice = new Person('Alice', 'female', 21);