Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-141

Programación orientada a objetos con Java

Modelar un dominio con clases, interfaces y herencia hasta que el diseño aguante los cambios.

Bajo demanda Intermedio 8 módulos · 39 clases

Formato asíncrono Desarrollo, Alumnado, Docentes FP Java

Lo que aprenderás

  • Encapsular estado con atributos privados y métodos de acceso que protejan las invariantes.
  • Diseñar jerarquías de herencia y decidir cuándo conviene composición en su lugar.
  • Definir interfaces y clases abstractas para separar el contrato de la implementación.
  • Aplicar polimorfismo para sustituir condicionales encadenados por despacho dinámico.
  • Sobrescribir equals, hashCode y toString de forma coherente con el modelo de datos.
  • Organizar el dominio en paquetes y aplicar los principios SOLID en refactorizaciones concretas.
  • Escribir pruebas con JUnit que fijen el comportamiento antes de tocar el diseño.

Contenido del curso

8 módulos · 39 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y punto de partida 4 clases
  • Qué problema resuelve la orientación a objetos
  • Entorno: proyecto, dependencias y ejecución de pruebas
  • Revisión rápida de clases y objetos
  • El dominio que se modela a lo largo del curso
Módulo 2 · Encapsulación y estado 5 clases
  • Atributos privados e invariantes de clase
  • Constructores que garantizan objetos válidos
  • Métodos de acceso: cuándo sobran
  • Objetos inmutables y clases record
  • Ejercicio: una clase que no admite estados imposibles
Módulo 3 · Herencia y composición 5 clases
  • extends y la cadena de constructores
  • super, sobrescritura y anotación Override
  • Cuándo la herencia rompe el diseño
  • Composición y delegación como alternativa
  • Clases selladas para cerrar una jerarquía
Módulo 4 · Abstracción e interfaces 5 clases
  • Clases abstractas y métodos sin cuerpo
  • Interfaces como contrato público
  • Métodos por defecto y estáticos en interfaces
  • Programar contra la interfaz, no contra la clase
  • Ejercicio: cambiar de implementación sin tocar el cliente
Módulo 5 · Polimorfismo en la práctica 5 clases
  • Despacho dinámico frente a condicionales encadenados
  • Sobrecarga y sobrescritura: diferencias
  • instanceof y coincidencia de patrones
  • Enumerados con comportamiento propio
  • Refactorizar un switch grande a polimorfismo
Módulo 6 · Contratos del lenguaje 5 clases
  • equals y hashCode coherentes
  • Comparable y Comparator para ordenar
  • toString útil para depurar
  • Excepciones propias del dominio
  • Genéricos básicos en clases y métodos
Módulo 7 · Diseño y refactorización 5 clases
  • Responsabilidad única con ejemplos reales
  • Abierto/cerrado: extender sin modificar
  • Sustitución de Liskov y sus violaciones típicas
  • Inversión de dependencias sin framework
  • Pruebas JUnit como red de seguridad
Módulo 8 · Caso práctico: sistema de reservas 5 clases
  • Del enunciado al modelo de clases
  • Interfaces de repositorio y dos implementaciones
  • Reglas de negocio y excepciones propias
  • Batería de pruebas del dominio
  • Entrega: proyecto refactorizado y documentado

Requisitos

  • Haber programado en Java: tipos, control de flujo, arrays y clases sencillas.
  • Un JDK instalado y un entorno de desarrollo como IntelliJ IDEA Community o Eclipse.
  • Manejo básico de la línea de comandos para compilar y ejecutar pruebas.

Descripción

La orientación a objetos se suele enseñar con animales que ladran y figuras geométricas, y luego el primer proyecto real llega lleno de clases enormes, condicionales encadenados y herencias que nadie se atreve a tocar. El problema no es la sintaxis, que se aprende en una tarde, sino saber qué debe ser una clase y qué responsabilidad le corresponde.

Este curso trabaja sobre ejercicios de modelado tomados de situaciones habituales: facturación, reservas, dispositivos con estados. Cada bloque plantea un requisito nuevo que rompe el diseño anterior y obliga a refactorizar con criterio, apoyándose en pruebas JUnit que confirman que nada se ha roto. Los principios SOLID aparecen como explicación de decisiones ya tomadas, no como teoría suelta.

Al terminar se distingue una jerarquía útil de una decorativa y se sabe cuándo una interfaz ahorra trabajo futuro. Es el paso previo a Java avanzado, donde entran colecciones, streams y concurrencia, y también la base para entender el código de Spring o de cualquier framework que se apoye en inyección de dependencias e inversión de control.

¿Para quién es este curso?

  • Desarrolladores junior que ya escriben Java y quieren dejar de acumular clases inmanejables.
  • Alumnado de segundo curso de Desarrollo de Aplicaciones que afronta su primer proyecto grande.
  • Profesorado de FP que necesita ejercicios de modelado con enunciados cercanos al trabajo real.
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
LNG-141
Nivel
Intermedio
Público
Desarrollo, Alumnado, Docentes FP
Entorno
Java

Este curso incluye

  • 39 clases en vídeo bajo demanda
  • Práctica en entornos web y simuladores, sin instalar nada
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-104Lenguajes y Fundamentos de Programación

Ficheros, excepciones y módulos

Lectura y escritura robusta, gestión de errores e importaciones para código que otros mantendrán.

Python

Intermedio 32 clases