Después de esa base inicial, el curso avanzará hacia la programación orientada a objetos, uno de los pilares fundamentales de Java. Aprenderemos a diseñar clases, crear objetos, aplicar encapsulación, trabajar con relaciones entre clases, usar herencia, polimorfismo, clases abstractas e interfaces. La idea no es solo aprender la sintaxis del lenguaje, sino entender cómo se piensa y se organiza una aplicación real.
En la parte final se introducen conceptos algo más avanzados relacionados con los tipos abstractos de datos, como pilas, colas, listas y una primera aproximación a los grafos. Estos contenidos servirán como puente hacia una comprensión más profunda de las estructuras que se utilizan en programación y prepararán el camino para cursos posteriores.
Este será el primero de tres grandes módulos. Una vez asentadas las bases de Java, continuaremos con el desarrollo de aplicaciones web mediante Java EE y, posteriormente, con Spring/Spring Boot, donde aplicaremos estos conocimientos en proyectos más completos y cercanos al desarrollo profesional.
Bloque 1 — Introducción al curso y entorno de trabajo
- Presentación del curso de programación con Java
- Qué es programar
- Qué es Java y para qué se utiliza
- Instalación del JDK
- Instalación de Eclipse
- Configuración inicial de Eclipse
- Creación del primer proyecto Java
- Estructura básica de un programa Java
- Primer programa:
Hola Mundo - Compilar, ejecutar y corregir errores básicos
Bloque 2 — Primeros conceptos de programación
- Algoritmos y pensamiento computacional
- Instrucciones y flujo de ejecución
- Datos, memoria y variables
- Tipos de datos primitivos en Java
- Constantes
- Conversión de tipos
- Entrada de datos por teclado con
Scanner - Salida de datos por consola
- Comentarios y buenas prácticas iniciales
- Errores comunes al empezar a programar
Bloque 3 — Operadores y expresiones
- Operadores aritméticos
- Operadores de asignación
- Operadores relacionales
- Operadores lógicos
- Incremento y decremento
- Prioridad de operadores
- Expresiones simples y compuestas
- Ejercicios básicos de cálculo
- Validación de expresiones
- Depuración básica en Eclipse
Bloque 4 — Estructuras condicionales
- Toma de decisiones en programación
- Condicional
if - Condicional
if else - Condicionales anidados
- Condiciones múltiples
- Operadores lógicos en condiciones
- Estructura
switch - Menús básicos con
switch - Validación de datos con condicionales
- Ejercicios prácticos de decisiones
Bloque 5 — Bucles y control de flujo
- Introducción a los bucles
- Bucle
while - Bucle
do while - Bucle
for - Contadores y acumuladores
- Bucles anidados
- Control de bucles con
break - Control de bucles con
continue - Validación repetitiva de datos
- Ejercicios prácticos con bucles
Bloque 6 — Métodos y organización del código
- Qué es un método
- Métodos sin parámetros y sin retorno
- Métodos con parámetros
- Métodos con valor de retorno
- Parámetros y argumentos
- Variables locales
- Alcance de las variables
- Sobrecarga de métodos
- Organización del código en métodos
- Ejercicios prácticos con métodos
Bloque 7 — Arrays y estructuras básicas de datos
- Introducción a los arrays
- Declaración y creación de arrays
- Recorrido de arrays
- Carga de datos en arrays
- Búsqueda de elementos
- Cálculos con arrays
- Arrays de cadenas de texto
- Arrays multidimensionales
- Matrices en Java
- Ejercicios prácticos con arrays y matrices
Bloque 8 — Cadenas de texto y clases básicas de Java
- La clase
String - Métodos principales de
String - Comparación de cadenas
- Conversión entre texto y números
- La clase
Math - Números aleatorios con
Random - Fechas básicas con Java
- Formateo básico de datos
- Uso de clases de utilidad
- Ejercicios prácticos con cadenas y utilidades
Bloque 9 — Introducción a la programación orientada a objetos
- Qué es la programación orientada a objetos
- Clases y objetos
- Atributos
- Métodos
- Creación de objetos
- Acceso a atributos y métodos
- Estado y comportamiento
- Diseño básico de clases
- Diagramas sencillos de clases
- Primeros ejercicios con objetos
Bloque 10 — Constructores, encapsulación y organización de clases
- Constructores
- Constructor por defecto
- Constructores con parámetros
- Sobrecarga de constructores
- Encapsulación
- Modificadores de acceso
- Métodos
getyset - Uso de
this - Separación de clases en archivos
- Ejercicios prácticos de encapsulación
Bloque 11 — Relaciones entre clases
- Objetos como atributos
- Asociación entre clases
- Composición
- Agregación
- Colecciones de objetos usando arrays
- Clases principales y clases auxiliares
- Diseño de pequeños modelos de datos
- Programas con varias clases
- Diagramas UML básicos
- Proyecto guiado con varias clases
Bloque 12 — Herencia y reutilización de código
- Introducción a la herencia
- Clases padre y clases hijas
- Uso de
extends - Herencia de atributos y métodos
- Sobrescritura de métodos
- Uso de
super - Constructores en herencia
- Jerarquías de clases
- Ventajas y límites de la herencia
- Ejercicios prácticos con herencia
Bloque 13 — Polimorfismo, clases abstractas e interfaces
- Introducción al polimorfismo
- Referencias de tipo padre
- Sobrescritura y comportamiento dinámico
- Conversión entre tipos de objetos
- Clases abstractas
- Métodos abstractos
- Interfaces
- Implementación de interfaces
- Diferencias entre clase abstracta e interfaz
- Ejercicios prácticos de polimorfismo
Bloque 14 — Gestión de errores y excepciones
- Errores de compilación
- Errores de ejecución
- Errores lógicos
- Introducción a las excepciones
- Bloque
try catch - Captura de varias excepciones
- Bloque
finally - Lanzamiento de excepciones
- Validación robusta de programas
- Ejercicios prácticos con excepciones
Bloque 15 — Colecciones básicas de Java
- Limitaciones de los arrays
- Introducción a las colecciones
ArrayList- Recorrido de colecciones
- Búsqueda en colecciones
- Eliminación de elementos
- Colecciones de objetos
- Ordenación básica
- Diferencias entre arrays y colecciones
- Ejercicios prácticos con
ArrayList
Bloque 16 — Proyecto final del curso
- Planteamiento del proyecto final
- Análisis de requisitos
- Diseño de clases
- Creación del proyecto en Eclipse
- Desarrollo del modelo de datos
- Desarrollo de la lógica del programa
- Creación de menús por consola
- Validación de entradas
- Pruebas y corrección de errores
- Presentación del proyecto final
Bloque 17 — Introducción a los tipos abstractos de datos
- Qué es un tipo abstracto de datos
- Diferencia entre estructura lógica y estructura física
- Estructuras estáticas
- Estructuras dinámicas
- Pilas estáticas
- Pilas dinámicas
- Colas estáticas
- Colas dinámicas
- Listas enlazadas básicas
- Listas simplemente enlazadas
- Listas doblemente enlazadas
- Comparación entre arrays, listas, pilas y colas
- Introducción a los árboles
- Introducción a los grafos
- Representación básica de grafos
- Recorrido básico de grafos
- Ejercicios introductorios de tipos abstractos de datos


