Programación Orientada a Objetos
Calendario
Cada semana: dos sesiones de teoría (A y B, 2 h) y un laboratorio (2 h). Los temas marcados con ✂️ pueden pasar a lectura autónoma si se pierden clases.
Objetos y clasesHerencia e interfacesProgramar con tiposDiseño
- 01
De C a Java · Objetos como estado y comportamiento
Objetos y clases- Sesión A
- Presentación del curso · De C a Java
- Sesión B
- Objetos como estado + comportamiento
- Laboratorio
- Entorno de trabajo
P0 publicadoApuntesDiapositivasCódigo - 02
Clases, objetos y referencias
Objetos y clases- Sesión A
- Clases, campos, métodos y constructores
- Sesión B
- Referencias, heap, null · Identidad vs. igualdad
- Laboratorio
- Primeras clases y depuración
P0 en cursoApuntesDiapositivasCódigo - 03
Encapsulamiento, static y records
Objetos y clases- Sesión A
- Encapsulamiento e invariantes
- Sesión B
- static, paquetes, inmutabilidad · record
- Laboratorio
- Unit tests con JUnit
- 04
Arreglos, ArrayList y diseño con clases
Objetos y clases- Sesión A
- Arreglos y ArrayList
- Sesión B
- Diseñar con clases: responsabilidades, UML de clases
- Laboratorio
- Modelar un dominio con pruebas
P1 en cursoApuntesDiapositivasCódigo - 05
Herencia y la clase Object
Herencia e interfaces- Sesión A
- Herencia: extends, super, override
- Sesión B
- Object: toString, equals, hashCode
- Laboratorio
- Jerarquías y el contrato de equals
P1 en cursoApuntesDiapositivasCódigo - 06
Polimorfismo y clases abstractas
Herencia e interfaces- Sesión A
- Polimorfismo y dynamic dispatch
- Sesión B
- Clases y métodos abstractos
- Laboratorio
- Polimorfismo en el proyecto
- 07
Interfaces y composición
Herencia e interfaces- Sesión A
- Interfaces
- Sesión B
- Composición vs. herencia · Sustitución de Liskov
- Laboratorio
- Interfaces y test doubles
P2 en cursoApuntesDiapositivasCódigo - 08
Tipos sealed, pattern matching y examen parcial
Herencia e interfaces- Sesión A
- Tipos sealed y pattern matching · Repaso
- Sesión B
- Examen parcial
- Laboratorio
- Repaso con ejercicios
P2 en cursoApuntesDiapositivasCódigo - 09
Excepciones y robustez
Programar con tipos- Sesión A
- Excepciones: lanzar, capturar, propagar
- Sesión B
- Robustez: checked vs. unchecked, try-with-resources, contratos
- Laboratorio
- Manejo de errores y pruebas de excepciones
- 10
Genéricos
Programar con tipos- Sesión A
- Genéricos: clases y métodos
- Sesión B
- Wildcards y type erasure
- Laboratorio
- Una colección genérica propia
P3 en cursoApuntesDiapositivasCódigo - 11
Colecciones
Programar con tipos- Sesión A
- Colecciones: List, Set, Map
- Sesión B
- Comparable, Comparator, iteradores
- Laboratorio
- Elegir la colección adecuada
P3 en cursoApuntesDiapositivasCódigo - 12
Lambdas y streams
Programar con tipos- Sesión A
- Lambdas, interfaces funcionales, referencias a métodos
- Sesión B
- Streams
- Laboratorio
- Reportes con streams
- 13
- Sesión A
- Principios de diseño: cohesión, acoplamiento, SOLID
- Sesión B
- Refactoring guiado por pruebas
- Laboratorio
- Refactorizar el proyecto
P4 en cursoApuntesDiapositivasCódigo - 14
Patrones de diseño
Diseño- Sesión A
- Patrones de diseño I: Strategy, Observer
- Sesión B
- Patrones de diseño II: Factory, Composite
- Laboratorio
- Patrones en el proyecto
P4 en cursoApuntesDiapositivasCódigo - 15
- Sesión A
- Archivos y E/S: java.nio.file, streams · Decorator
- Sesión B
- Persistencia simple: CSV y serialización
- Laboratorio
- Guardar y cargar el estado
- 16
- Sesión A
- Programación orientada a eventos · Interfaces gráficas
- Sesión B
- Cierre: diseño de una aplicación completa · Repaso
- Laboratorio
- Presentación de proyectos
P5 entregaApuntesDiapositivasCódigo