Skip to content

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