3. POO y UML Básico
Programación Programación
Estructurada Orientada a Objetos
MÉTODOS MÉTODOS
PROCEDIMIENTOS
ATRIBUTOS ATRIBUTOS
MÉTODOS MÉTODOS
DATOS
ATRIBUTOS ATRIBUTOS
4. POO y UML Básico
Objetos
• Un objeto puede ser cualquier cosa que tenga su propia
identidad. Por ej: En el mundo real son objetos una
persona, un auto, una casa, etc.
• Todos los objetos tienen atributos. Por ej. Un auto tiene
una marca, un modelo, un color, un n° de patente, etc.
• Los objetos también tienen comportamiento. Por ej. Un
auto puede moverse de un lugar a otro.
• En la POO podemos hacer abstracciones de objetos del
mundo real con sus atributos y comportamiento. Cada
objeto tiene cierto conocimiento, en la forma de
atributos, y sabe como realizar ciertas operaciones.
5. POO y UML Básico
Objetos en UML
Nombre subrayado
unObjeto
atributo1 Atributos
atributo2
Operaciones
operacion1()
operacion2()
6. POO y UML Básico
Encapsulamiento
• Se refiere a esconder los atributos de un objeto detrás de
sus operaciones o métodos
Métodos
Atributos
7. POO y UML Básico
Asociación y agregación
• Son forma de relación entre objetos
• Asociación: Los objetos se relacionan pero no dependen
completamente el uno del otro. Por ej. Un auto y un
conductor.
• Agregación: Uno o más objetos son parte de un objeto
mayor. Por ej. Un auto y su motor.
8. POO y UML Básico
Asociación en UML
unAuto unPasajero
Los objetos de unen
con una línea
unConductor
9. POO y UML Básico
Agregación en UML
unAuto motor
Los objetos de unen con
una línea. El extremo del
objeto mayor usa un
rombo
panelControles
velocimetro
10. POO y UML Básico
Navegabilidad y nombre de una relación en UML
direccion
unCliente unaDirección
La flecha indica la
navegabilidad de la
relación
11. POO y UML Básico
Mensajes
• Un objeto se puede colaborar con otro para realizar tareas
que no podrían realizar por si mismos.
• Un objeto colabora con otro enviando un mensaje para
invocar una operación de otro objeto.
• Los mensajes pueden tener una respuesta, además pueden
tener diversos parámetros.
12. POO y UML Básico
Clases
• Las clases encapsulan características comunes a un grupo
de objetos.
• Todo objeto es instancia de una clase. Por ej. Pedro, María
y Juan son instancias de la clase Persona.
13. POO y UML Básico
Clases en UML
Nombre
Clase
atributo1 Atributos
atributo2
Operaciones
operacion1()
operacion2()
14. POO y UML Básico
Herencia
• Mediante la herencia una clase puede tomar
características de una clase padre y agregar sus propias
características. Por ej. La clase Tren hereda de la clase
VehiculoTerrestre.
• Mediante la herencia se pueden crear jerarquías de
clases. Por ej. La clase Vehiculo tiene 3 clases hijas,
VehiculoTerrestre, VehiculoAereo y VehiculoMaritimo, y
cada una de estas tiene clases hijo
15. POO y UML Básico
Herencia en UML
Vehiculo
El Triángulo apunta a
la clase padre
VehiculoTerrestre VehiculoAereo VehiculoMaritimo
Auto Bicicleta
16. POO y UML Básico
Herencia Múltiple e Interfaces
• Una clase puede heredar de muchas otras. Pero debido a
los problemas que trae la herencia múltiple en algunos
lenguajes no está permitida.
• En lenguajes como Java para evitar los problemas de la
herencia múltiple se introdujo el concepto de interfaz.
• Una interfaz en una clase abstracta pura. Sólo tiene
métodos abstractos públicos y no tiene atributos.
• En Java una clase sólo puede heredar de otra. Pero puede
implementar múltiples interfaces.
17. POO y UML Básico
Interfaces en UML
Vehiculo <<interface>>
VehiculoMotorizado
avanzar()
VehiculoTerrestre Se escribe <<interface>> en
la parte superior
Auto
18. POO y UML Básico
Clases abstractas
• Es una clase con al menos un método abstracto (sin
implementación) ya sea propio o heredado.
• Las clases abstractas no pueden ser instanciadas.
• Permiten un modelamiento más flexible .
• Las clases y métodos no abstractos se denominan
concretos.
19. POO y UML Básico
Clases abstractas en UML
El nombre se escribe en
Vehiculo itálicas
avanzar()
<<abstract>>
Vehiculo
avanzar()
VehiculoTerrestre
Otra forma de representar
Auto clases abstractas
20. POO y UML Básico
Sobrescritura de métodos
• Una clase hijo puede cambiar la implementación de una
operación de una clase padre. Por ej. El método abstracto
avanzar() de Vehiculo puede implementarse en la clase
Auto
21. POO y UML Básico
Polimorfismo
• Polimorfismo significa “muchas formas” y en OO aplica de
dos formas.
• Atributos polimórficos: Un atributo que tenga como tipo
una clase padre puede tener como valor, en tiempo de
ejecución, objetos pertenecientes a una de las clases hijo.
• Mensajes polimórficos: Al invocar un mensaje en un
objeto declarado con una clase padre, en tiempo de
ejecución, se puede invocar la operación implementada en
una de las clases hijo.
23. POO en Java
Ejemplo
// Comentarios Javadoc omitidos
// por brevedad Vehiculo <<interface>>
VehiculoMotorizado
public abstract class Vehiculo { avanzar()
public abstract void avanzar();
}
public abstract class VehiculoTerrestre
VehiculoTerrestre
extends Vehiculo {
numeroRuedas: int
private int numeroRuedas;
}
public class Auto
Auto
extends VehiculoTerrestre
implements VehiculoMotorizado {
avanzar()
public void avanzar() {
...
}
}