Professional Documents
Culture Documents
Las relaciones existentes entre las distintas clases nos indican cmo se comunican los objetos de esas clases entre s:
Los mensajes navegan por las relaciones existentes entre las distintas clases.
Existen distintos tipos de relaciones: - Asociacin (conexin entre clases) - Dependencia (relacin de uso) - Generalizacin/especializacin (relaciones de herencia)
- 23 -
Fernando Berzal
Asociacin
Una asociacin es una relacin estructural que describe una conexin entre objetos.
Grficamente, se muestra como una lnea continua que une las clases relacionadas entre s. Navegacin de las asociaciones Aunque las asociaciones suelen ser bidireccionales (se pueden recorrer en ambos sentidos), en ocasiones es deseable hacerlas unidireccionales (restringir su navegacin en un nico sentido). Grficamente, cuando la asociacin es unidireccional, la lnea termina en una punta de flecha que indica el sentido de la asociacin:
Asociacin unidireccional
Asociacin bidireccional
OOP Introduccin: Java - 24 Fernando Berzal
equivale a
class Cuenta { private Dinero balance; public void ingresar (Dinero cantidad) { balance += cantidad; } public void retirar (Dinero cantidad) { balance -= cantidad; } public Dinero getSaldo () { return balance; } }
Hemos supuesto que Dinero es un tipo de dato con el que se pueden hacer operaciones aritmticas y hemos aadido un mtodo adicional que nos permite comprobar el saldo de una cuenta.
OOP Introduccin: Java - 25 Fernando Berzal
public class Cuenta { private Cliente titular; } public class Cliente { private Cuenta cuenta[]; }
Un cliente puede tener varias cuentas, por lo que en la clase cliente hemos de mantener un conjunto de cuentas (un vector en este caso).
OOP Introduccin: Java - 26 Fernando Berzal
Multiplicidad de las asociaciones La multiplicidad de una asociacin determina cuntos objetos de cada tipo intervienen en la relacin:
El nmero de instancias de una clase que se relacionan con UNA instancia de la otra clase.
- Cada asociacin tiene dos multiplicidades (una para cada extremo de la relacin).
- Para especificar la multiplicidad de una asociacin hay que indicar la multiplicidad mnima y la multiplicidad mxima (mnima..mxima)
Multiplicidad
1 0..1 N..M * 0..* 1..*
Significado Uno y slo uno Cero o uno Desde N hasta M Cero o varios Cero o varios Uno o varios (al menos uno)
- Una multiplicidad mnima mayor o igual que 1 establece una relacin obligatoria.
- 27 -
Fernando Berzal
Profesor 1
dirige 0..1
Departamento
Relaciones involutivas Cuando la misma clase aparece en los dos extremos de la asociacin.
- 28 -
Fernando Berzal
Agregacin y composicin Casos particulares de asociaciones: Relacin entre un todo y sus partes
Composicin Agregacin disjunta y estricta: Las partes slo existen asociadas al compuesto (slo se accede a ellas a travs del compuesto)
- 29 -
Fernando Berzal
Dependencia
Relacin (ms dbil que una asociacin) que muestra la relacin entre un cliente y el proveedor de un servicio usado por el cliente. - Cliente es el objeto que solicita un servicio. - Servidor es el objeto que provee el servicio solicitado.
Grficamente, la dependencia se muestra como una lnea discontinua con una punta de flecha que apunta del cliente al proveedor.
b b 2 4ac x= 2a
Para resolver una ecuacin de segundo grado hemos de recurrir a la funcin sqrt de la clase Math para calcular una raz cuadrada. NOTA: La clase Math es una clase degenerada que no tiene estado. Es, simplemente, una coleccin de funciones de clculo matemtico.
OOP Introduccin: Java - 30 Fernando Berzal
Objetos de distintas clases pueden tener atributos similares y exhibir comportamientos parecidos (p.ej. animales, mamferos).
public class Empleado { ... } public class Profesor extends Empleado { ... } public class PAS extends Empleado { ... }
- 31 -
Fernando Berzal
La nocin de clase est prxima a la de conjunto: Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos.
Instancias:
coches vehculos
Propiedades:
propiedades(coches) propiedades(vehculos)
- Un coche tiene todas las propiedades de un vehculo. - Algunas propiedades del coche no las tienen todos los vehculos.
- 32 -
Fernando Berzal
Jerarquas de clases
- Las subclases heredan caractersticas de las clases de las que se derivan y aaden caractersticas especficas que las diferencian.
En el diagrama de clases, los atributos, mtodos y relaciones de una clase se muestran en el nivel ms alto de la jerarqua en el que son aplicables.
- 33 -
Fernando Berzal