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
Persona
tiene dos propiedades (nombre
yedad
), un constructor y dos métodos (mostrarInfo
ycumplirAnios
). - Constructor: El constructor
Persona(this.nombre, this.edad)
inicializa las propiedadesnombre
yedad
cuando se crea un nuevo objeto. - Métodos:
mostrarInfo
imprime el nombre y la edad de la persona.cumplirAnios
incrementa la edad en 1 y luego imprime un mensaje.
- Creación de un Objeto: En la función
main
, se crea un objetopersona1
de la clasePersona
con el nombre 'Juan' y la edad 30. - Uso de Métodos: Se llaman los métodos
mostrarInfo
ycumplirAnios
del 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
mostrarDetalles
que imprima los detalles del coche. - Método
edadDelCoche
que 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
this
para 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