4: le classi in Dart ObiettivoConoscere la sintassi usata per la definizione delle classi e dell'uso degli oggetti in Dart PrerequisitiConoscere il concetto di oggetto/classe Strumenti |
La dichiarazione di un oggetto non è molto diversa rispetto a quella che viene fatta in Java: anche in Dart una classe può estendere un'altra classe, ha proprietà e metodi e si dichiara usando la parola chiave class ma in un file possono essere dichiarate più classi senza particolari riguardi.
Vedremo qui sotto alcune particolarità sintattiche.
Anche in Dart una classe non eredita i costruttori della superclasse e una classe senza costruttori ha soltanto quello di default con nessun parametro.
Visto che Dart distingue due funzioni (o metodi che sia) soltanto in base al nome non è possibile avere due costruttori "classici" diversi.
È però possibile definire il costruttore in diversi modi. Poniamo di avere una classe chiamata Quadrato che ha una sola proprietà lato
Un classico costruttore potrebbe essere
ma è possibile definire lo stesso costruttore nel modo seguente:
oppure anche utilizzando una "Initializer list"
Per costruire un oggetto si usa la solita sintassi tenendo conto del fatto che new può essere omesso:
Siccome è possibile che servano dei costruttori diversi Dart mette a disposizione una sintassi per farne altri "per nome". Poniamo che io voglia costruire un quadrato in base al suo perimetro:
in questo caso per usarlo dovremmo scrivere
Non si usano allo stesso modo di Java, in breve generalmente si usano meno ma esistono delle parole chiave per esprimerli, questo è un esempio di uso.
Questa è soltanto una scorciatoia! Poniamo che il mio oggetto Quadrato abbia la proprietà nome e il metodo arrotonda() utilizzato per arrotondare la misura del lato, potrei usarle nel seguente modo:
ma in Dart posso usare questa sintassi con ".." che mi consente di abbreviare il tutto:
Per alcune ulteriori caratteristiche degli oggetti è possibile vedere oggettiAvanzati@Dartpad.