En este módulo, aprenderemos sobre uno de los conceptos fundamentales de la Programación Orientada a Objetos (POO): las clases y los objetos. Dart es un lenguaje orientado a objetos, lo que significa que todo en Dart es un objeto, incluso los tipos primitivos como int y bool.
Conceptos Clave
¿Qué es una Clase?
Una clase es un plano o plantilla para crear objetos. Define un conjunto de propiedades y métodos que los objetos creados a partir de la clase tendrán.
¿Qué es un Objeto?
Un objeto es una instancia de una clase. Es una entidad que tiene estado (propiedades) y comportamiento (métodos).
Sintaxis Básica de una Clase
class NombreDeLaClase {
// Propiedades
Tipo propiedad1;
Tipo propiedad2;
// Constructor
NombreDeLaClase(this.propiedad1, this.propiedad2);
// Métodos
void metodo1() {
// Código del método
}
Tipo metodo2() {
// Código del método
return valor;
}
}Ejemplo Práctico
Vamos a crear una clase Persona con algunas propiedades y métodos.
class Persona {
// Propiedades
String nombre;
int edad;
// Constructor
Persona(this.nombre, this.edad);
// Métodos
void mostrarInfo() {
print('Nombre: $nombre, Edad: $edad');
}
void cumplirAnios() {
edad += 1;
print('$nombre ha cumplido años y ahora tiene $edad años.');
}
}
void main() {
// Crear un objeto de la clase Persona
Persona persona1 = Persona('Juan', 30);
// Usar los métodos del objeto
persona1.mostrarInfo();
persona1.cumplirAnios();
}Explicación del Código
- Definición de la Clase: La clase
Personatiene dos propiedades (nombreyedad), un constructor y dos métodos (mostrarInfoycumplirAnios). - Constructor: El constructor
Persona(this.nombre, this.edad)inicializa las propiedadesnombreyedadcuando se crea un nuevo objeto. - Métodos:
mostrarInfoimprime el nombre y la edad de la persona.cumplirAniosincrementa la edad en 1 y luego imprime un mensaje.
- Creación de un Objeto: En la función
main, se crea un objetopersona1de la clasePersonacon el nombre 'Juan' y la edad 30. - Uso de Métodos: Se llaman los métodos
mostrarInfoycumplirAniosdel objetopersona1.
Ejercicio Práctico
Ejercicio 1
Crea una clase Coche con las siguientes propiedades y métodos:
- Propiedades:
marca,modelo,anio. - Constructor que inicialice las propiedades.
- Método
mostrarDetallesque imprima los detalles del coche. - Método
edadDelCocheque calcule y devuelva la edad del coche.
Solución
class Coche {
// Propiedades
String marca;
String modelo;
int anio;
// Constructor
Coche(this.marca, this.modelo, this.anio);
// Métodos
void mostrarDetalles() {
print('Marca: $marca, Modelo: $modelo, Año: $anio');
}
int edadDelCoche() {
int anioActual = DateTime.now().year;
return anioActual - anio;
}
}
void main() {
// Crear un objeto de la clase Coche
Coche coche1 = Coche('Toyota', 'Corolla', 2015);
// Usar los métodos del objeto
coche1.mostrarDetalles();
print('Edad del coche: ${coche1.edadDelCoche()} años');
}Retroalimentación y Consejos
-
Errores Comunes:
- No inicializar las propiedades en el constructor.
- Olvidar el tipo de retorno en los métodos.
- No usar
thispara referirse a las propiedades de la clase dentro del constructor.
-
Consejos:
- Siempre inicializa todas las propiedades en el constructor.
- Usa nombres de métodos y propiedades descriptivos para mejorar la legibilidad del código.
- Practica creando diferentes clases y objetos para familiarizarte con la sintaxis y los conceptos de POO en Dart.
Conclusión
En esta sección, hemos aprendido sobre las clases y los objetos en Dart, cómo definir una clase, crear objetos y utilizar métodos. Estos conceptos son fundamentales para la Programación Orientada a Objetos y serán la base para temas más avanzados en los siguientes módulos. Asegúrate de practicar creando tus propias clases y objetos para reforzar lo aprendido.
Curso de Programación en Dart
Módulo 1: Introducción a Dart
- Introducción a Dart
- Configuración del Entorno de Desarrollo
- Tu Primer Programa en Dart
- Sintaxis y Estructura Básica
