Menu
Coddy logo textTech

Fondamenti dei costruttori

Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 8 di 110.

Un costruttore è un metodo speciale che viene eseguito automaticamente quando crei un nuovo oggetto. Inizializza le variabili di istanza dell'oggetto nel momento stesso della sua creazione.

Ecco un esempio di una classe con un costruttore:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

Il costruttore ha lo stesso nome della classe. I parametri vengono passati quando si crea l'oggetto.

Crea oggetti passando argomenti al costruttore:

Dog rex = Dog('Rex', 'German Shepherd');
Dog buddy = Dog('Buddy', 'Golden Retriever');

Accedi alle variabili impostate dal costruttore:

print(rex.name);
print(rex.breed);
print(buddy.name);
print(buddy.breed);

Output:

Rex
German Shepherd
Buddy
Golden Retriever

Dart offre anche una sintassi abbreviata per i costruttori, che usa direttamente this.variableName nell'elenco dei parametri:

class Dog {
  String name;
  String breed;

  // Forma abbreviata: assegna automaticamente i parametri alle variabili di istanza
  Dog(this.name, this.breed);
}

Entrambe le versioni producono lo stesso risultato. La sintassi abbreviata è una funzionalità molto diffusa di Dart che evita di dover scrivere manualmente this.name = name.

Puoi anche aggiungere valori predefiniti ai parametri:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age ha come valore predefinito 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age ha come valore predefinito 1

print('${fluffy.name} is ${fluffy.age}');    // Fluffy ha 3 anni
print('${whiskers.name} is ${whiskers.age}'); // Whiskers ha 1 anno

Punto chiave: i costruttori assicurano che ogni oggetto venga inizializzato correttamente con i dati nel momento in cui viene creato, evitando di dover impostare manualmente le variabili in seguito.

challenge icon

Sfida

Facile

Ti vengono forniti dei file PHP (book.dart e driver.dart) per implementare un sistema di libri.

I tuoi compiti:

  • Completa la classe Book in book.dart aggiungendo un costruttore che inizializzi title, author e pages: usa la sintassi abbreviata di Dart Book(this.title, this.author, this.pages);
  • In driver.dart, crea un oggetto Book per 'Harry Potter' di 'J.K. Rowling' con 400 pagine

Segui i commenti TODO in ciascun file.

Provalo tu

import 'book.dart';

void main() {
  // TODO: Crea un oggetto Book con:
  // title: 'Harry Potter', author: 'J.K. Rowling', pages: 400
  Book myBook = ?;

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Dart online