Fase 2 – Programación Orientada a Objetos (2–3 meses)
Clases, Objetos, Atributos y Métodos
- Estructura de clases
- Instanciación de objetos
- Uso de this
- Mejores prácticas: nomenclatura, organización de código
Encapsulación, Herencia, Polimorfismo y Abstracción
- Encapsulation: private, getters/setters, validación
- Inheritance: extends, overriding (@Override)
- Polymorphism: Subtipo, method overloading
- Abstraction: visión general, preparación para interfaces y clases abstractas
Interfaces y Clases Abstractas
- Interfaces: implements, default methods
- Abstract classes: métodos abstractos y concretos
- Diferencias entre interface y abstract class
Constructores, Inicializadores y Bloques Estáticos
- Constructores por defecto y parametrizados, llamadas con this()
- Bloques de inicialización ({}) y bloques estáticos (static {})
Enumeraciones
- Creación y uso de enum
- Métodos y atributos en enums
Colecciones Básicas
- ArrayList: adición, eliminación, iteración (for, forEach, Iterator)
- HashMap: clave-valor, operaciones comunes
- HashSet: eliminación de duplicados
- Introducción a Queue y Stack (por ejemplo, LinkedList como queue/stack)
- Introducción al Java Collections Framework
Algoritmos Básicos
- Búsqueda lineal y binaria
- Sorting: Bubble Sort, Collections.sort()
- Recursion: conceptos y ejemplos simples (por ejemplo, factorial, Fibonacci)
- Introducción a la complejidad (O(n), O(log n))
Generics
- Sintaxis (), colecciones genéricas, métodos genéricos
- Límites (extends, super)
Stream API (Introducción)
- Operaciones básicas: filter, map, collect
- Ejemplos con ArrayList
Pruebas Unitarias (Introducción)
- Uso básico de JUnit
- Escribir casos de prueba para clases y métodos
- Introducción a TDD (Test-Driven Development)
Proyecto Final
- Sistema de Biblioteca
- Clases: Book, User, Library
- Herencia: DigitalBook y PhysicalBook
- Colecciones: ArrayList para libros, HashMap para préstamos
- Encapsulación: validación de datos
- Git: commit por funcionalidad (por ejemplo,
feature/book-management
)
- Publicar en GitHub con README explicativo
Recursos Actualizados