Els constructors són una part fonamental de la programació orientada a objectes en Dart. S'utilitzen per inicialitzar objectes quan es creen. En aquesta secció, aprendrem què són els constructors, com es defineixen i utilitzen, i veurem alguns exemples pràctics.
Què és un Constructor?
Un constructor és una funció especial que es crida automàticament quan es crea una instància d'una classe. El seu propòsit principal és inicialitzar els membres de la classe.
Característiques dels Constructors:
- Tenen el mateix nom que la classe.
- No tenen un tipus de retorn, ni tan sols
void
. - Es poden sobrecarregar per proporcionar diferents maneres d'inicialitzar un objecte.
Tipus de Constructors
Constructor per Defecte
Si no es defineix cap constructor en una classe, Dart proporciona un constructor per defecte que no pren cap argument i no fa res especial.
class Persona { String nom; int edat; } void main() { var persona = Persona(); // Utilitza el constructor per defecte print(persona.nom); // null print(persona.edat); // null }
Constructor Personalitzat
Podem definir un constructor personalitzat per inicialitzar els membres de la classe amb valors específics.
class Persona { String nom; int edat; // Constructor personalitzat Persona(String nom, int edat) { this.nom = nom; this.edat = edat; } } void main() { var persona = Persona('Joan', 30); print(persona.nom); // Joan print(persona.edat); // 30 }
Constructor Nombrat
Els constructors nombrats permeten crear múltiples constructors per a una classe, cadascun amb un nom diferent.
class Persona { String nom; int edat; // Constructor principal Persona(this.nom, this.edat); // Constructor nombrat Persona.jove(String nom) { this.nom = nom; this.edat = 18; } } void main() { var persona1 = Persona('Joan', 30); var persona2 = Persona.jove('Anna'); print(persona1.nom); // Joan print(persona1.edat); // 30 print(persona2.nom); // Anna print(persona2.edat); // 18 }
Constructor de Redirecció
Un constructor de redirecció crida a un altre constructor de la mateixa classe.
class Persona { String nom; int edat; // Constructor principal Persona(this.nom, this.edat); // Constructor de redirecció Persona.jove(String nom) : this(nom, 18); } void main() { var persona = Persona.jove('Anna'); print(persona.nom); // Anna print(persona.edat); // 18 }
Constructor Const
Els constructors const
creen objectes constants. Tots els membres de la classe han de ser finals per utilitzar un constructor const
.
class Punt { final int x; final int y; // Constructor const const Punt(this.x, this.y); } void main() { var punt1 = const Punt(2, 3); var punt2 = const Punt(2, 3); print(identical(punt1, punt2)); // true }
Exercicis Pràctics
Exercici 1: Constructor Personalitzat
Defineix una classe Cotxe
amb els membres marca
i model
. Crea un constructor personalitzat per inicialitzar aquests membres.
class Cotxe { String marca; String model; // Constructor personalitzat Cotxe(this.marca, this.model); } void main() { var cotxe = Cotxe('Toyota', 'Corolla'); print(cotxe.marca); // Toyota print(cotxe.model); // Corolla }
Exercici 2: Constructor Nombrat
Defineix una classe Rectangle
amb els membres ample
i alt
. Crea un constructor principal i un constructor nombrat quadradet
que inicialitzi ample
i alt
amb el mateix valor.
class Rectangle { double ample; double alt; // Constructor principal Rectangle(this.ample, this.alt); // Constructor nombrat Rectangle.quadradet(double costat) : this(costat, costat); } void main() { var rectangle = Rectangle(4.0, 5.0); var quadradet = Rectangle.quadradet(3.0); print(rectangle.ample); // 4.0 print(rectangle.alt); // 5.0 print(quadradet.ample); // 3.0 print(quadradet.alt); // 3.0 }
Resum
En aquesta secció, hem après sobre els constructors en Dart, incloent-hi els constructors per defecte, personalitzats, nombrats, de redirecció i const
. Els constructors són essencials per inicialitzar objectes i proporcionar flexibilitat en la manera com es creen les instàncies de les classes. Amb els exercicis pràctics, has tingut l'oportunitat de posar en pràctica aquests conceptes i veure com funcionen en codi real.
Curs de Programació en Dart
Mòdul 1: Introducció a Dart
- Introducció a Dart
- Configuració de l'Entorn de Desenvolupament
- El Teu Primer Programa en Dart
- Sintaxi i Estructura Bàsica
Mòdul 2: Conceptes Bàsics de Dart
Mòdul 3: Col·leccions
Mòdul 4: Programació Orientada a Objectes en Dart
Mòdul 5: Funcionalitats Avançades de Dart
Mòdul 6: Gestió d'Errors i Depuració
Mòdul 7: Paquets i Biblioteques de Dart
Mòdul 8: Dart per a Web i Mòbil
- Introducció a Flutter
- Construcció d'una Aplicació Simple amb Flutter
- Dart per al Desenvolupament Web