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

  1. Definición de la Clase: La clase Persona tiene dos propiedades (nombre y edad), un constructor y dos métodos (mostrarInfo y cumplirAnios).
  2. Constructor: El constructor Persona(this.nombre, this.edad) inicializa las propiedades nombre y edad cuando se crea un nuevo objeto.
  3. Métodos:
    • mostrarInfo imprime el nombre y la edad de la persona.
    • cumplirAnios incrementa la edad en 1 y luego imprime un mensaje.
  4. Creación de un Objeto: En la función main, se crea un objeto persona1 de la clase Persona con el nombre 'Juan' y la edad 30.
  5. Uso de Métodos: Se llaman los métodos mostrarInfo y cumplirAnios del objeto persona1.

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.

© Copyright 2024. Todos los derechos reservados