ud3_prog.md 2026-01-17
📚 RESUMEN: UD3 - PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
Objetivo: Comprender los fundamentos de POO para el examen.
1. ⚠ Conceptos Clave
A. Los 4 Pilares de la POO
1. Abstracción: Simplificar la realidad extrayendo lo esencial.
2. Encapsulamiento: Ocultar los detalles internos (atributos privados).
3. Herencia: Crear nuevas clases a partir de otras existentes.
4. Polimorfismo: Mismo método, comportamientos diferentes.
B. Clase vs Objeto
Concepto Definición Ejemplo
Clase Plantilla/moldé que define atributos y métodos class Coche { ... }
Objeto Instancia concreta de una clase (ocupa memoria) Coche miCoche = new Coche();
C. Modificadores de Acceso (Visibilidad)
Modificador Símbolo UML Accesible desde
Público (+) + Cualquier clase
Privado (-) - Solo la propia clase
Protegido (#) # La clase y sus subclases
### D. **Relaciones entre Clases (UML)** | Relación | Descripción | Símbolo UML | Ejemplo | |----------|---------
----|-------------|---------| | **Asociación** | Uso temporal entre clases | Línea continua | `Cliente` → `Factura` | |
**Agregación** | "Tiene un" (todo/parte independiente) | Línea + rombo blanco | `Casa` ◇→ `Habitación` | |
**Composición** | "Contiene" (todo/parte dependiente) | Línea + rombo negro | `Ordenador` ◆→ `CPU` | |
**Herencia** | "Es un" (generalización/especialización) | Línea + triángulo | `Empleado` △→ `Persona` |
E. Cardinalidades (Multiplicidad)
Notación Significado
1 Exactamente uno
0..1 Cero o uno
0..* o * Cero o muchos
, ud3_prog.md 2026-01-17
Notación Significado
1..* Uno o muchos
n..m Rango específico (ej: 3..5)
2. 💻 CHULETA DE SINTAXIS (Código Java POO)
A. Estructura Básica de una Clase
// NombreArchivo.java debe coincidir con nombre de clase pública
public class Persona {
// 1. ATRIBUTOS (normalmente privados)
private String nombre;
private int edad;
// 2. CONSTRUCTOR (mismo nombre que la clase)
public Persona(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
// 3. MÉTODOS (públicos para interactuar)
// Getter (consultar)
public String getNombre() {
return nombre;
}
// Setter (modificar)
public void setNombre(String nombre) {
this.nombre = nombre;
}
// Método personalizado
public void saludar() {
System.out.println("Hola, soy " + nombre);
}
}
B. Creación y Uso de Objetos
public class Main {
public static void main(String[] args) {
// Crear objeto (instanciar)
Persona persona1 = new Persona("Ana", 25);
// Usar métodos
persona1.saludar(); // "Hola, soy Ana"
📚 RESUMEN: UD3 - PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
Objetivo: Comprender los fundamentos de POO para el examen.
1. ⚠ Conceptos Clave
A. Los 4 Pilares de la POO
1. Abstracción: Simplificar la realidad extrayendo lo esencial.
2. Encapsulamiento: Ocultar los detalles internos (atributos privados).
3. Herencia: Crear nuevas clases a partir de otras existentes.
4. Polimorfismo: Mismo método, comportamientos diferentes.
B. Clase vs Objeto
Concepto Definición Ejemplo
Clase Plantilla/moldé que define atributos y métodos class Coche { ... }
Objeto Instancia concreta de una clase (ocupa memoria) Coche miCoche = new Coche();
C. Modificadores de Acceso (Visibilidad)
Modificador Símbolo UML Accesible desde
Público (+) + Cualquier clase
Privado (-) - Solo la propia clase
Protegido (#) # La clase y sus subclases
### D. **Relaciones entre Clases (UML)** | Relación | Descripción | Símbolo UML | Ejemplo | |----------|---------
----|-------------|---------| | **Asociación** | Uso temporal entre clases | Línea continua | `Cliente` → `Factura` | |
**Agregación** | "Tiene un" (todo/parte independiente) | Línea + rombo blanco | `Casa` ◇→ `Habitación` | |
**Composición** | "Contiene" (todo/parte dependiente) | Línea + rombo negro | `Ordenador` ◆→ `CPU` | |
**Herencia** | "Es un" (generalización/especialización) | Línea + triángulo | `Empleado` △→ `Persona` |
E. Cardinalidades (Multiplicidad)
Notación Significado
1 Exactamente uno
0..1 Cero o uno
0..* o * Cero o muchos
, ud3_prog.md 2026-01-17
Notación Significado
1..* Uno o muchos
n..m Rango específico (ej: 3..5)
2. 💻 CHULETA DE SINTAXIS (Código Java POO)
A. Estructura Básica de una Clase
// NombreArchivo.java debe coincidir con nombre de clase pública
public class Persona {
// 1. ATRIBUTOS (normalmente privados)
private String nombre;
private int edad;
// 2. CONSTRUCTOR (mismo nombre que la clase)
public Persona(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
// 3. MÉTODOS (públicos para interactuar)
// Getter (consultar)
public String getNombre() {
return nombre;
}
// Setter (modificar)
public void setNombre(String nombre) {
this.nombre = nombre;
}
// Método personalizado
public void saludar() {
System.out.println("Hola, soy " + nombre);
}
}
B. Creación y Uso de Objetos
public class Main {
public static void main(String[] args) {
// Crear objeto (instanciar)
Persona persona1 = new Persona("Ana", 25);
// Usar métodos
persona1.saludar(); // "Hola, soy Ana"