Guía completa desde fundamentos hasta patrones de diseño
Bienvenido al repositorio de DOPO/POOB. Esta guía condensa todo el recorrido desde los fundamentos de la programación orientada a objetos hasta patrones de diseño avanzados, estructurado sesión por sesión.
Entendiendo la diferencia fundamental entre el plano y la construcción.
- Clases: El molde o plantilla para crear software (ej.
public class Coche {}). - Objetos: La instancia viva que ocupa memoria (ej.
new Coche("Rojo")). - Herramientas: Uso del entorno BlueJ para visualización (ej. inspeccionar objetos en tiempo real).
- Estructura: Definición de atributos y métodos (ej. color, velocidad y acelerar()).
Protegiendo la información y controlando el flujo.
- Modificadores de Acceso: Quién puede ver qué (ej.
privatepara secretos,publicpara la fachada). - Tipos de Datos: Primitivos vs. Referencia (ej.
intvs.String). - Estructuras de Control: Toma de decisiones e iteraciones (ej.
if,switch,for,while). - Encapsulamiento: Ocultamiento de la implementación (ej. usar getters/setters en lugar de acceder a variables directas).
El software no es solo código, es un proceso de ingeniería.
- Ciclo de Desarrollo: Pasos lógicos para construir software (ej. Requisitos -> Análisis -> Diseño -> Pruebas).
- UML vs. Código: Modelado visual antes de programar (ej. Diagramas de Clase representando relaciones).
- Descomposición: Funcional vs. Orientada a Objetos (ej. dividir por tareas vs. dividir por entidades responsables).
Cómo los objetos interactúan y comparten rasgos.
- Asociación: Objetos que colaboran (ej. un
Estudiantetiene unCurso). - Herencia: Reutilización de código basada en jerarquías (ej.
class Gato extends Animal). - Sobreescritura: Cambiar el comportamiento heredado (ej. un
Perroladra diferente a como unAnimalgenérico hace ruido). - Palabra clave
super: Acceso al padre (ej. llamar al constructor de la superclase).
Definiendo contratos y plantillas obligatorias.
- Clases Abstractas: No se pueden instanciar, solo heredar (ej.
Clase Figurano existe físicamente, peroCirculosí). - Interfaces: Contratos de comportamiento puro (ej.
interface Voladorobliga a implementardespegar()). - Polimorfismo: Tratar objetos distintos de forma uniforme (ej. una lista de
Animalque contieneGatosyPerros).
Haciendo el software resistente a errores.
- Jerarquía Throwable: Diferencia entre errores fatales y manejables (ej.
Errorvs.Exception). - Bloques de Control: Captura y manejo (ej.
trypara intentar,catchpara atrapar el error). - Excepciones Propias: Creación de errores personalizados (ej.
SaldoInsuficienteException). - Buenas Prácticas: No ignorar errores silenciosamente (ej. siempre loguear o notificar en el catch).
Interacción visual con el usuario.
- Componentes Swing: Elementos visuales básicos (ej.
JButton,JTextField,JPanel). - Manejo de Eventos: Reaccionar a acciones (ej.
ActionListenercuando se hace clic). - Patrón MVC: Separación de responsabilidades (ej. Modelo: Datos, Vista: Ventana, Controlador: Lógica).
Más allá de los arreglos estáticos.
- Framework de Colecciones: Estructuras dinámicas de Java (ej.
java.util.Collection). - Tipos Principales: Listas, Conjuntos y Mapas (ej.
ArrayListordenado,HashSetsin duplicados,HashMapclave-valor). - Generics: Seguridad de tipos en colecciones (ej.
List<Estudiante>evita meter unProfesorpor error). - Iteradores: Recorrer colecciones eficientemente (ej. usar
foreachoIterator).
Persistencia de datos y comunicación externa.
- Flujos (Streams): Canales de lectura/escritura (ej.
InputStreampara bytes,Readerpara caracteres). - Manejo de Archivos: Leer y escribir texto (ej.
File,Scanner,PrintWriter). - Serialización: Guardar objetos completos (ej. convertir un objeto
Juegoen un archivo binario.dat).
Soluciones probadas a problemas recurrentes ("La lengua franca de los desarrolladores").
- Patrones Creacionales: Controlan la creación de objetos (ej. Singleton: garantizar una sola instancia de
BaseDeDatos). - Patrones GRASP: Principios de asignación de responsabilidades (ej. Experto: la clase que tiene los datos debe procesarlos, Creador: quién debe instanciar a quién).
- Patrones GoF: El catálogo clásico (ej. Factory, Observer, Composite).
- Arquitectura: Organización de alto nivel (ej. Capas, Cliente-Servidor).
- Lenguaje: Java ☕
- IDE Recomendado: BlueJ (para aprendizaje), Eclipse/IntelliJ (para producción).
- Formatos: PDF, UML, Código Fuente.
"El código es leído más veces de las que es escrito. Escribe pensando en el lector." 📖
Repositorio generado para consolidar los conocimientos de DOPO/POOB 2025-02.
TODO PFD PROPORCIONADO EN ESTE REPOSITORIO NO SE DA AUTORIZACIÓN DE DISTRIBUIRLO, ES PROPIEDAD DE LA UNIVERSIDAD ESCUELA COLOMBIANA DE INGENIERIA JULIO GARABITO