Programación Orientada a Objetos - Conceptos y Principios

Jul 18, 2024

Programación Orientada a Objetos - Conceptos y Principios

Introducción

  • Se espera en los próximos 5 años un cambio en la enseñanza, enfocándose en propiedades, polimorfismo, sobrecarga y sobreescritura de métodos, constructores y documentación técnica.
  • Objetivo: Informar y enseñar a dominar conceptos clave de manera simple.

Conceptos Clave

Clases y Objetos

  • Clase: Plantilla o blueprint para crear objetos, encapsula propiedades y métodos.
  • Objeto: Instancia de una clase, representa entidades del mundo real con un estado y comportamiento.
  • Propiedades: Atributos que describen el estado de un objeto (por ej. nombre, número de rol, calificaciones).
  • Métodos: Funciones que describen el comportamiento del objeto.

Polimorfismo

  • Polimorfismo en OOP: Capacidad para presentar la misma interfaz para diferentes acciones (por ej. métodos sobrecargados).
  • Sobrecarga y Sobreescritura: Definición de múltiples métodos con el mismo nombre pero diferentes parámetros (sobrecarga) o redefinir métodos en clases derivadas (sobreescritura).

Herencia

  • Herencia: Mecanismo donde una clase (subclase) hereda propiedades y métodos de otra clase (superclase).
  • Tipos de Herencia: Simple, múltiple, jerárquica, multihierárquica, y mixta.

Encapsulamiento

  • Encapsulamiento: Restricción de acceso directo a los componentes de un objeto, promoviendo la modificación del estado solo mediante métodos.
  • Modifiers: Public, private, protected, y package-private, controlan la visibilidad.

Abstracción

  • Abstracción: Proceso de exponer solo detalles esenciales y ocultar la implementación compleja.
  • Uso de interfaces y clases abstractas para definir contratos en la programación.

Excepciones y Manejo de Errores

  • Manejo de Excepciones: Procesos mediante try, catch, finally, y throw para gestionar errores y excepciones.
  • Excepción: Evento que interrumpe el flujo normal de ejecución de un programa.

Colecciones y Estructuras de Datos

  • Framework de Colecciones: Provee implementaciones estándar de estructuras de datos (listas, conjuntos, mapas).
  • Interfaz: Contrato que define un conjunto de métodos que una clase debe implementar.

Entrada/Salida y Manejo de Archivos

  • Manejo de Archivos: Técnicas y clases para leer y escribir datos en archivos, incluyendo el concepto de streams.
  • File Handling: Proceso de crear, leer, escribir y manipular archivos en un sistema de archivos.

Conceptos Avanzados y Buenas Prácticas

  • Constructores: Métodos especiales utilizados para inicializar objetos. Definen el estado inicial de un objeto al momento de su creación.
  • Singleton Class: Patrón de diseño que restringe la instanciación de una clase a un único objeto.
  • Garbage Collection: Proceso automático de gestión y liberación de memoria en desuso por objetos que ya no son accedidos en el programa.

Ejemplo de Clase en Java

  • Clase Estudiante
public class Estudiante {
    // Propiedades
    int numeroDeRol;
    String nombre;
    float calificaciones;

    // Constructor
    public Estudiante(int numeroDeRol, String nombre, float calificaciones) {
        this.numeroDeRol = numeroDeRol;
        this.nombre = nombre;
        this.calificaciones = calificaciones;
    }

    // Método
    public void mostrarDetalles() {
        System.out.printf("Rol: %d, Nombre: %s, Calificaciones: %.2f", numeroDeRol, nombre, calificaciones);
    }
}

// Creación y uso de objetos
Estudiante kunal = new Estudiante(1, "Kunal", 85.5f);
kunal.mostrarDetalles();

Resumen y Conclusión

  • Se cubrieron aspectos básicos y avanzados de POO como clases, objetos, herencia, polimorfismo y más.
  • Seguir prácticas y patrones recomendados para una eficiente organización y codificación en proyectos.