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
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.