Introducció
En aquest tema, aprendrem sobre la programació orientada a objectes (OOP) en Dart. La OOP és un paradigma de programació que utilitza "objectes" per representar dades i mètodes. Els objectes són instàncies de classes, que defineixen les propietats i comportaments dels objectes.
Conceptes Clau
Classes
Una classe és una plantilla per crear objectes. Defineix les propietats (atributs) i els mètodes (funcions) que els objectes creats a partir de la classe tindran.
Objectes
Un objecte és una instància d'una classe. Conté dades i mètodes definits per la seva classe.
Membres de la Classe
- Atributs: Variables que emmagatzemen dades de l'objecte.
- Mètodes: Funcions que defineixen el comportament de l'objecte.
Creació d'una Classe
Definició d'una Classe
class Persona { // Atributs String nom; int edat; // Constructor Persona(this.nom, this.edat); // Mètode void saludar() { print('Hola, em dic $nom i tinc $edat anys.'); } }
Explicació del Codi
- Atributs:
String nom
iint edat
són atributs de la classePersona
. - Constructor:
Persona(this.nom, this.edat)
és el constructor de la classe, que inicialitza els atributsnom
iedat
. - Mètode:
void saludar()
és un mètode que imprimeix un missatge de salutació.
Creació d'un Objecte
void main() { // Creació d'un objecte de la classe Persona Persona persona1 = Persona('Joan', 30); // Ús del mètode saludar persona1.saludar(); }
Explicació del Codi
- Creació d'un Objecte:
Persona persona1 = Persona('Joan', 30);
crea un objectepersona1
de la classePersona
amb el nom 'Joan' i l'edat 30. - Ús del Mètode:
persona1.saludar();
crida el mètodesaludar
de l'objectepersona1
.
Exercicis Pràctics
Exercici 1: Crear una Classe
Crea una classe Cotxe
amb els atributs marca
i model
, i un mètode detalls
que imprimeixi la marca i el model del cotxe.
Solució
class Cotxe { // Atributs String marca; String model; // Constructor Cotxe(this.marca, this.model); // Mètode void detalls() { print('Marca: $marca, Model: $model'); } } void main() { // Creació d'un objecte de la classe Cotxe Cotxe cotxe1 = Cotxe('Toyota', 'Corolla'); // Ús del mètode detalls cotxe1.detalls(); }
Exercici 2: Afegir un Mètode
Afegeix un mètode accelerar
a la classe Cotxe
que imprimeixi un missatge indicant que el cotxe està accelerant.
Solució
class Cotxe { // Atributs String marca; String model; // Constructor Cotxe(this.marca, this.model); // Mètode void detalls() { print('Marca: $marca, Model: $model'); } // Nou mètode void accelerar() { print('$marca $model està accelerant.'); } } void main() { // Creació d'un objecte de la classe Cotxe Cotxe cotxe1 = Cotxe('Toyota', 'Corolla'); // Ús dels mètodes cotxe1.detalls(); cotxe1.accelerar(); }
Errors Comuns i Consells
Errors Comuns
- No inicialitzar els atributs: Assegura't que tots els atributs de la classe estiguin inicialitzats, ja sigui directament o a través del constructor.
- Oblidar el
this
en el constructor: Quan inicialitzis els atributs dins del constructor, utilitzathis
per referir-te als atributs de la classe.
Consells
- Utilitza noms descriptius: Dona noms clars i descriptius als teus atributs i mètodes per millorar la llegibilitat del codi.
- Encapsulament: Mantingues els atributs privats (utilitzant
_
abans del nom) i proporciona mètodes públics per accedir-hi i modificar-los si és necessari.
Conclusió
En aquesta secció, hem après els conceptes bàsics de les classes i objectes en Dart. Hem vist com definir una classe, crear objectes i utilitzar mètodes. Aquests conceptes són fonamentals per a la programació orientada a objectes i seran la base per a temes més avançats com herència, mixins i interfícies.
En el següent tema, explorarem els constructors en més detall, incloent-hi constructors nominals i constructors de fàbrica.
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