U4 · Programación orientada a objetos¶
Leer el resumen
En esta unidad pasas del código suelto a la programación orientada a objetos. Una clase es un molde, y un objeto es cada cosa creada con ese molde. Cada clase tiene atributos, que son sus datos, y métodos, que son lo que sabe hacer. Aprenderás a crear objetos con constructores, a validar los datos al crearlos, y a proteger los atributos con el encapsulamiento, para que nadie los cambie de cualquier manera. También guardarás colecciones de objetos. Y terminas con un proyecto propio.
Pasar del código suelto a clases y objetos: atributos, métodos, constructores, validación, encapsulamiento y colecciones de objetos. Termina con un proyecto personal o en grupo.
Teoría¶
- 4.A Clases y objetos: atributos, métodos, constructor y referencias.
- 4.B Encapsulamiento: visibilidad, validación, propiedades e igualdad.
- 4.C Constructores y enumerados: varias formas de crear un objeto y tipos cerrados.
- 4.D Colecciones y miembros estáticos: objetos que contienen objetos y lo que pertenece a la clase.
- 4.E Del problema al programa: cómo decidir las clases y pasar comportamiento como parámetro.
Antes de empezar: qué debes dominar¶
- Clase, objeto, atributo y método.
- Constructores (principal y alternativos) y valores por defecto.
- Encapsulamiento: visibilidad y propiedades de solo lectura.
- Enumerados, sobrecarga y
toString/igualdad. - Colecciones de objetos y validación con excepciones.
Ejercicios de la unidad¶
Equivalencias de POO en Java¶
| Idea | En Java |
|---|---|
| Constructor principal y sobrecarga | varios constructores con distintos parámetros; this(...) encadena |
| Propiedad calculada de solo lectura | método getImc() |
| Privado | private (y getters/setters a mano) |
| Validar al crear | if (...) throw new IllegalArgumentException(...) en el constructor |
| Herencia | class B extends A, con super(...) |
| Clase abstracta / interfaz | abstract class / interface |
| Enumerado | enum Color { BLANCO, NEGRO } (admite campos y métodos) |
| Datos con igualdad por valor | record Persona(String nombre, int edad) {} |
| Parámetro por defecto | no existe: sobrecarga el método |
| Jerarquía cerrada | sealed interface ... permits ... |
Antes de pasar a los ejercicios¶
Cuando hayas leído y practicado la teoría, marca la casilla para desbloquear los ejercicios de esta unidad: