Resumen de POO
Clases y Objetos
Clases: Plantillas o modelos que definen atributos (propiedades) y métodos (comportamientos).
Pilares de la POO
Abstracción: Ocultar la complejidad y mostrar solo lo esencial.
Herencia: Permitir que una clase derive de otra para reutilizar código.
Encapsulamiento: Proteger los datos mediante el control del acceso a ellos.
Polimorfismo: Permitir que un objeto tome múltiples formas según el contexto.
Objetos: Instancias de clases, con atributos y comportamientos específicos.
Modificadores de Acceso
Público (public): Accesible desde cualquier parte del código.
Privado (private): Accesible solo dentro de la clase.
Protegido (protected): Accesible dentro de la clase y sus subclases.
Atributos: Variables que contienen datos del objeto.
Métodos: Funciones que definen comportamientos del objeto.
Relaciones Entre Clases
Asociación: Relación entre objetos sin dependencia jerárquica.
Agregación: Una forma más débil de relación, donde el objeto agregado puede existir independientemente.
Composición: Relación fuerte, donde los objetos componentes dependen de la existencia del objeto contenedor.
Principios SOLID
L: Sustitución de Liskov (Liskov Substitution Principle): Los objetos de una clase derivada deben poder reemplazar a los de su clase base sin alterar el comportamiento del programa.
I: Segregación de interfaces (Interface Segregation Principle): Las interfaces deben ser específicas para cada cliente, evitando la implementación de métodos no utilizados.
O: Abierto/Cerrado (Open/Closed Principle): Las clases deben estar abiertas para extensión, pero cerradas para modificación.
D: Inversión de dependencias (Dependency Inversion Principle): Las dependencias deben ser de abstracciones, no de concretos.
S: Responsabilidad única (Single Responsibility Principle): Una clase debe tener una única razón para cambiar.
Excepciones
Mecanismo para manejar errores y situaciones excepcionales que ocurren durante la ejecución del programa.
Las excepciones se pueden capturar usando bloques try, catch, y finally, lo que permite al programa continuar su ejecución o terminar de manera controlada.
Tipos: Excepciones predefinidas (como NullPointerException, ArrayIndexOutOfBoundsException) y excepciones personalizadas definidas por el usuario.
Colecciones
Estructuras de datos que permiten almacenar, gestionar y manipular grupos de objetos.
Conjuntos (Sets): No mantienen un orden específico y no permiten duplicados.
Mapas (Maps): Asocian claves con valores, facilitando el acceso a los datos mediante la clave.
Listas: Mantienen los elementos en orden y permiten duplicados.
Pruebas (Tests)
Permiten asegurar que el código funciona correctamente y cumple con los requisitos esperados.
Herramientas: Frameworks como JUnit (Java) y NUnit (.NET) se utilizan para automatizar y ejecutar pruebas.
Pruebas Unitarias: Evalúan el comportamiento de funciones o métodos individuales.
Pruebas de Integración: Aseguran que diferentes componentes del sistema interactúan de manera correcta.
Pruebas de Sistema: Evalúan el funcionamiento del sistema completo.
Archivos
Los archivos permiten almacenar y recuperar datos de forma permanente en el sistema de archivos
Escritura: Guardar datos en un archivo.
Apertura y Cierre: Iniciar y finalizar el acceso a un archivo.
Lectura: Extraer información almacenada en un archivo.