Logo Studenta

Asociaciones-de-Clases-en-Java

¡Este material tiene más páginas!

Vista previa del material en texto

Ferreiras Asociaciones de clases en Java 1
Asociación de Clases en Java
V1.0
Febrero 2014
Ferreiras. 
2
Es una simple conexión estructural 
o canal entre las clases y es una 
relación donde todos los objetos 
(instancias de dichas clases) tienen 
su propio ciclo de vida y no hay 
dueño.
Asociación
Ferreiras Asociaciones de clases en Java
3
Asociación
• Es usada para conectar dos clases. Una 
línea sólida conecta a las clases asociadas.
• Describe una relación que existirá entre 
las instancias de las clases en tiempo de 
ejecución. Por ejemplo:
A B
Ferreiras Asociaciones de clases en Java
Ferreiras Asociaciones de clases en Java 4
Cliente
-CliCodigo: string
- CliNombre: string
-CliApellido:string
-CliBalance:double
Factura
-FacNumero: string
- FactFecha: string
- CliCodigo: string 
Cliente puede saber cuales son sus 
facturas, pero factura no puede saber cual 
es su cliente.
• Otro ejemplo:
5
Asociación
• Existe una asociación entre dos clases si una 
instancia de una clase debe saber sobre la 
instancia de la otra clase con el fin de realizar su 
trabajo. 
• Esto es, en una asociación, una instancia de una 
clase usa una instancia de la otra clase para llevar 
a cabo una tarea. Por esta razón una asociación 
es llamada una “relación de uso.”
Ferreiras Asociaciones de clases en Java
Ferreiras Asociaciones de clases en Java 6
Asociación
• Es representada mediante una línea 
sólida que conecta a las clases asociadas.
• Existirá una asociación entre dos clases 
si una instancia de una clase debe saber 
sobre la instancia de la otra clase con el 
fin de realizar su trabajo para cumplir con 
sus responsabilidades. 
Ferreiras Asociaciones de clases en Java 7
Estudiante PCLab
Permiso
Por ejemplo: 
En el contexto de “... Los estudiantes de informática de la UASD realizan sus 
practicas usando PCs, mediante un permiso ( usuario y contraseña ) que les es 
asignado por el encargado los laboratorios de informática o aulas LIF-XXX...” Se 
generará una asociación entre las clases Estudiante y PCLab como 
se muestra mas abajo:
Permiso Es el nombre de la 
asociación
Esta representación puede ser interpretada como: 
Estudiante necesita permiso para usar PCLab
PCLab requiere de permiso para Estudiante usarla
Ferreiras Asociaciones de clases en Java 8
Asociación
���� En una asociación, una instancia de 
una clase usa una instancia de la otra 
clase para llevar a cabo una tarea, sus 
responsabilidades. Por esta razón una 
asociación es llamada una “relación de 
uso.”
Ferreiras Asociaciones de clases en Java 9
Asociación
���� Si en la declaración del problema
encontramos términos como “usar a”, 
“enviar a”, “obtener de”, “depender 
de”, “solicitar a”, “pedir a”, “requerir 
de”, o “informar a” o “comunicar a”
estos son indicios, pistas que 
probablemente indiquen asociaciones de 
clases. 
Ferreiras Asociaciones de clases en Java 10
Asociación
• La cantidad de clases participantes
podrán ser dos o mas;
• Asociaciones binarias Son 
asociaciones que relacionan dos clases. 
• Las mas comunes son las 
asociaciones binarias, porque son las 
mas fácil de conceptualizar .
Ferreiras Asociaciones de clases en Java 11
Asociación
���� Las clases que colaboran usualmente 
se relacionan a través de asociaciones. Es 
por ello que las tarjetas CRC (Clase-
Responsabilidad-Colaboración), a ver mas 
adelante en este curso, son una fuente, 
también, para identificar asociaciones de 
clases.
Ferreiras Asociaciones de clases en Java 12
Elementos en un asociación
• Aclaran la relación representada por la 
asociación. 
• Son: 
• Nombre de la asociación (opcional);
• Roles de las clases (opcional);
• Multiplicidad;
• Veamos su explicación y uso.
Ferreiras Asociaciones de clases en Java 13
���� Nombre1 de la asociación, con un símbolo, 
opcional, que indique el sentido en el cual se 
debe leer. Por ejemplo:
Persona Empresa
Empleo �
1: Si no esta nombrada, por defecto el nombre es “tiene”.
Elementos en un asociación
Es el nombre de la 
asociación. 
Este símbolo es opcional, 
apuntando a la dirección en 
la cual fluye la relación.
Ferreiras Asociaciones de clases en Java 14
Persona Empresa
Empleo �
Claramente, esta asociación representa el hecho 
de que “Persona es empleada por Empresa”
Y, nunca podrá entenderse como “Empresa es 
empleada por Persona”, porque así lo establece el 
símbolo � para su lectura. 
Elementos en un asociación
���� Continuando con el ejemplo anterior:
Ferreiras Asociaciones de clases en Java 15
���� El nombre de una asociación es 
elegido de modo que, en combinación con 
los nombres de las clases relacionadas, se 
pueda producir una sentencia sensata que 
describa la relación entre dichas clases 
conectadas. Como, por ejemplo:
“Persona es empleada por Empresa”
Elementos en un asociación
Ferreiras Asociaciones de clases en Java 16
Elementos en un asociación
• Algunos “gurúes” Sugieren usar una 
frase verbal para que el nombre de la 
asociación refleje el propósito de la relación.
• Otros “gurúes” Sugieren usar un simple 
nombre. En este curso usaremos, 
preferiblemente, este estilo, 
democráticamente establecido por el 
profesor. 
Ferreiras Asociaciones de clases en Java 17
���� Rol o papel que desempeña un 
extremo ⇒⇒⇒⇒ Cada extremo de la asociación 
pueden ser etiquetado con un nombre del 
rol o papel que desempeña en ésta, el cual 
aclara la naturaleza de dicha asociación.
Elementos en un asociación
Ferreiras Asociaciones de clases en Java 18
���� Un nombre de un rol Se elige para 
describir cómo se ven los objetos de una 
clase en un extremo de una asociación 
desde la perspectiva de los objetos de la 
clase del otro extremo.
Elementos en un asociación
Ferreiras Asociaciones de clases en Java 19
Por ejemplo, en la asociación Empleo:
Persona Empresa
empleadorempleado
Rol: Cada objeto Persona 
ve a un objeto Empresa 
como su “empleador”. 
Luego, “empleador” seria 
un nombre apropiado para 
el rol de cada objeto de la 
clase Empresa 
Rol: Cada objeto Empresa 
ve a un objeto Persona 
como su “empleado”. 
Luego, “empleado” seria 
un nombre apropiado para 
el rol de cada objeto de la 
clase Persona 
Elementos en un asociación
rol
Ferreiras Asociaciones de clases en Java 20
Cliente
-CliCodigo: string
- CliNombre: string
-CliApellido:string
-CliBalance:double
Factura
-FacNumero: string
- FactFecha: string
- CliCodigo: string 
genera pertenece 
roles
���� Otro ejemplo 
CLIENTE genera FACTURA
FACTURA pertenece a CLIENTE
���� La lectura de las asociaciones 
mostradas es como sigue:
Ferreiras Asociaciones de clases en Java 21
Vendedor
- VendorCodigo: long
- VendorNombre: string
- VendorApellido:string
- VendorTel: string
Producto
- ProCodigo: long
- ProDescripcion: string
- ProPrecio: double 
suple suplido
roles
���� Otro ejemplo: 
Producto es suplido por Vendedor
Vendedor suple Producto
Ferreiras Asociaciones de clases en Java 22
���� Mas ejemplos de nombres de roles 
Note: One Personal Computer sees the System Unit (the CPU) as your computer brain.
Recuperated from 
http://www.ts.mah.se/RUP/RationalUnifiedProcess/process/modguide/md_assoc.htm
Ferreiras Asociaciones de clases en Java 23
• Roles, algunos tips de interés
• La mayor parte de la información acerca 
de una asociación se define en sus 
extremos ( los roles de sus respectivas 
clases ).
• Su uso es opcional, algunos “gurúes” 
no lo usan para evitar sobrecargar mucho 
la representación de la asociación. 
Ferreiras Asociaciones de clases en Java 24
• Roles, algunos tips de interés
• Por Ejemplo:
CursoDeMaestria CursoDeGrado
Requerimiento
Un CursoDeMaestria requiere un CursoDeGrado
Ferreiras Asociaciones de clases en Java 25
• Roles, algunos tips de interés
• En la implementación de la asociación, 
El nombre del rol Tendrá un papel 
importante;
• En la implementación de la asociación,
Es de estilo que el nombre del rol sea el de 
una variable puntero (C++), o referencia ( 
Java ) del tipode la clase en el extremo 
donde ésta esté. 
Cardinality in Associations
• An association has two ends
• Each end can connect to one or many objects, depending on how 
the association is defined in the database schema
• Objectivity/DB associations support four categories of cardinality:
– 1:1 one-to-one
– 1:m one-to-many
– m:1 many-to-one
– n:m many-to-many
Ferreiras 26Asociaciones de clases en Java
Ferreiras Asociaciones de clases en Java 27
Multiplicidad
La multiplicidad de una asociación define el 
número de instancias de una clase en un 
extremo de dicha asociación que esta 
conectado con una instancia de la clase en 
el otro extremo. Luego, esta multiplicidad 
puede ser: 
���� Uno-A-Uno
���� Uno-A-Mucho
���� Mucho-A-Uno
���� Mucho-A-Mucho
Ferreiras Asociaciones de clases en Java 28
Multiplicidad
Para expresar de manera más clara la 
multiplicidad de una asociación se pueden usar, 
solos o combinados, el cero, números naturales 
y el símbolo de la cerradura de Kleene ( ∗ ). 
• En esta representación, la multiplicidad 
proporciona la misma información que las 
construcciones de conectividad y cardinalidad, 
en la relación de participación en el modelo ER 
( a ver en INF-526 con Ferreiras )
Ferreiras Asociaciones de clases en Java 29
���� Las expresiones más comunes son: 
Multiplicidad Significado
0..1 Cero ó Uno
1 Uno sólo, exactamente uno, uno
0..∗ ó ∗ Cero ó más, mucho
1..∗ Uno ó más, al menos uno
n Únicamente n ( Donde n > 1 )
0..n Cero a n ( Donde n > 1 )
1..n Uno a n ( Donde n > 1 )
n..m n a m ( Donde n & m > 1 )
n..m ó z Un numero exacto; p.e.: 3..4 ó 6
Compleja Por ejemplo: 0..1, 3..4, 6..∗ significa cualquier 
número de objetos que no sean 2 ó 5.
Ferreiras Asociaciones de clases en Java 30
Por ejemplo, en la asociación Empleo:
Persona Empresa
empleadorempleado
∗∗∗∗ Es la multiplicad de este 
extremo e indica que “ Cero o 
mas objetos Persona 
empleado están conectados, 
por medio de la asociación 
Empleo, con un objeto 
Empresa empleador “ 
1 Es la multiplicidad de este 
extremo e indica que “ Un 
objeto Empresa empleador, 
exactamente uno, esta 
conectado con un objeto
Persona empleado” 
∗∗∗∗ 1
Multiplicidad
Ferreiras Asociaciones de clases en Java 31
Cliente
-CliCodigo: string
- CliNombre: string
-CliApellido:string
-CliBalance:double
Factura
-FacNumero: string
- FactFecha: string
- CliCodigo: string 
genera pertenece 
roles
1 0..∗
���� Ejemplo: 
un CLIENTE genera cero o mas FACTURA
una FACTURA pertenece a un (solo uno) CLIENTE
���� La lectura de las asociaciones mostradas es 
como sigue:
multiplicidad
Ferreiras Asociaciones de clases en Java 32
Vendedor
- VendorCodigo: long
- VendorNombre: string
- VendorApellido:string
- VendorTel: string
Producto
-ProCodigo: long
- ProDescripcion: string
- ProPrecio: double 
suple suplido
roles
1 0..∗
���� Ejemplo: 
multiplicidad
un Producto es suplido por un Vendedor
un Vendedor suple cero o más Producto
Ferreiras Asociaciones de clases en Java 33
Representación de asociaciones mucho-A-mucho
Un Estudiante se inscribe en muchas Asignaturas
Una Asignatura es inscripta por muchos Estudiantes
Estudiante Asignatura
inscrito selección
inscripción
∗ ∗
Ferreiras Asociaciones de clases en Java 34
Representación de asociaciones mucho-A-mucho
Una Factura lista muchos (al menos 1) Productos
Un Producto es vendido en cero o mas Facturas
Factura Producto
listado vendido
...
∗ 1..∗
Ferreiras Asociaciones de clases en Java 35
���� ¿ Cómo leer las anotaciones de 
multiplicidad ? ⇒⇒⇒⇒ Para dar una descripción 
más completa de la relación que está siendo 
representada por la asociación, las anotaciones 
de multiplicidad se pueden leer:
���� Con los nombres de las clases asociadas, 
solamente.
���� En conjunto con los nombres de los roles 
de los extremos; O, 
Multiplicidad
Ferreiras Asociaciones de clases en Java 36
Por ejemplo, la asociación Empleo
Persona Empresa
empleadorempleado
∗∗∗∗ 1
Puede ser leída como :
Una Persona empleado trabaja para una Empresa empleador; O, 
Una Persona trabaja para una Empresa
Multiplicidad
Ferreiras Asociaciones de clases en Java 37
���� El significado preciso de las anotaciones 
de multiplicidad tiene que ver con el número 
de conexiones que pueden existir en un 
momento dado, en tiempo de ejecución.
���� Por ejemplo, considerando la asociación 
Empleado que hemos estado usando, 
podemos decir que: 
Multiplicidad
Ferreiras Asociaciones de clases en Java 38
Alicia : Persona
���� Son ilegales porque:
a) El objeto Persona Alicia trabaja simultáneamente para 
dos objetos Empresas;
b) El objeto Persona Balbuena no esta conectado a 
ningún objeto Empresa. 
CNN : Empresa
SIN : Empresa
Empleo
Empleo
Balbuena : Persona
Ferreiras Asociaciones de clases en Java 39
En general, la información de multiplicidad 
debe ser mostrada en las asociaciones, pero 
los nombres de la asociación y los 
nombres de los roles de los extremos son 
opcionales. Se debe elegir un nivel de 
detalle necesario para hacer una 
representación de fácil comprensión.
Multiplicidad
Ferreiras Asociaciones de clases en Java 40
���� Si hay mas de una asociación entre el 
mismo par de clases, es necesario algún 
etiquetado textual para clarificar las 
asociaciones y asegurar que la multiplicidad 
correcta es entendida para cada asociación. 
Por ejemplo:
Multiplicidad
Ferreiras Asociaciones de clases en Java 41
Persona Empresa
empleadorempleado
∗∗∗∗ 1
∗ ∗
cliente proveedor
Una Persona es empleado de una Empresa 
Una Empresa es empleador de cero o mas Persona
Una Persona es cliente de cero o mas Empresa
Una Empresa es proveedor de cero o mas Persona
���� Por ejemplo: Considerando el caso de 
que una persona pueda ser empleado y a 
la vez cliente de una empresa.
Ferreiras Asociaciones de clases en Java 42
���� En una asociación reflexiva o unaria,
Esto es, una asociación en la cual ambos 
extremos conectan a la misma clase, los 
nombres de los roles de los extremos son 
muy útiles para distinguirlos entre si y 
esclarecer lo representado por la asociación. 
Por ejemplo:
Multiplicidad
Ferreiras Asociaciones de clases en Java 43
Persona
1..∗
hijo
padre 2 Pr
oc
re
ar
 �
D
escenderD
e �
Un hijo debe descender de dos padre
Un padre debe procrear uno o mas hijo
Ferreiras Asociaciones de clases en Java 44
Empleado
1
supervisor
obrero 2..10
Un supervisor debe supervisar 2 a 10 obreros 
OJO: De obrero a supervisor no hay interés
���� Otro ejemplo:
Ferreiras Asociaciones de clases en Java 45
Navegabilidad
Muestra la dirección en la cual una 
asociación puede ser recorrida o consultada, 
mediante una punta de flecha en la línea de la 
asociación. Por ejemplo:
Cliente Dirección
1..*0..*
Un cliente puede ser consultado acerca de su 
dirección; pero una dirección no puede ser 
consultad por su cliente. 
Ferreiras Asociaciones de clases en Java 46
���� En otras palabras, En la asociación 
Cliente – Dirección anterior, Un objeto 
Cliente debe conocer sus objetos 
Dirección con los que está asociados, 
pero un objeto Dirección no tiene 
conocimiento de los objetos Cliente con 
los que está asociados.
Ferreiras Asociaciones de clases en Java 47
Persona Carro
∗
• Una Persona es propietaria de 0 ó más Carro; 
• En la representación actual, no hay forma de 
consultar desde Carro a Persona
���� Otro ejemplo de navegabilidad
Ferreiras Asociaciones de clases en Java 48
���� Otro ejemplo de navegabilidad
Pedido
cantidad
aplicaITBIS
calcularSubtoal
calcularPesoTotal
Mercancía
peso
precio
getPrecio
getPeso
1..*0..*
���� Un objeto Pedido puede ser consultado 
acerca de sus objetos Mercancia, pero no a la 
inversa, esto es, un objeto Mercancía no puede 
ser consultado acerca de sus objetos Pedido.
Ferreiras Asociaciones de clases en Java 49
���� La navegabilidad se utiliza para 
registrar el hecho de que ciertos 
conexiones de clases en el sistema sólo se 
podrían recorrer, o los mensajesenviados, 
en una dirección. La navegabilidad es 
indicada por medio de una flecha abierta, 
que se coloca en el extremo de la línea de 
asociación junto a la clase de destino. 
Ferreiras Asociaciones de clases en Java 50
Asociación unidireccional, 
asociación bidireccional
���� Asociación unidireccional Es aquella 
asociación cuya navegabilidad es en un solo 
sentido. Esto significa que la clase de origen 
tiene una referencia a la clase destino, pero la 
clase destino no sabe acerca de la clase de 
origen. Esto último es importante a tener en 
cuenta para fines de implementación. Los 
ejemplos anteriores son asociaciones 
unidireccionales.
Ferreiras Asociaciones de clases en Java 51
Asociación unidireccional, 
asociación bidireccional
���� Asociación bidireccional Es aquella 
asociación cuya navegabilidad es en ambos 
sentidos. Esto significa que ambas clases tienen 
referencias entre sí. En otras palabras, ambas 
clases en los extremos de la asociación son, al 
mismo tiempo, origen y destino. Ambas se 
pueden consultar entre sí. Por defecto, si no se 
indica la navegabilidad, la asociación es 
bidireccional. 
Ferreiras Asociaciones de clases en Java 52
���� Por ejemplo:
Persona Perro
0..*1..1
Persona Perro
0..*1..1
Representa los mismo que:
���� Un objeto Persona puede consultar cuantos objetos Perro tiene.
���� Un objeto Perro puede consultar cuál es su único objeto Persona.
propietario
propietario mascota
propietario mascota
���� En la implementación, la clase Persona y la clase Perro tendrán 
referencias entre sí ( un contenedor de mascota en Persona y una variable 
propietario en Perro ). 
���� Normalmente se implementan dividiéndolas en dos asociaciones 
unidireccionales y una tercera clase que las conecta. 
Ferreiras Asociaciones de clases en Java 53
Implementación de asociaciones
[ Codificando asociaciones ]
• Implementar una asociación es codificar 
en un lenguaje de programación la situación 
representada. 
• Normalmente, esto es hecho usando 
variables punteros ( C++ ) o referencias 
(Java), inicializándolas en el constructor. 
Ferreiras Asociaciones de clases en Java 54
/*
Asociacion2.java
jdk1.7.0_13
Ferreiras / Java/ Association / 1-M
Implementar la asociacion indicada: 
+---------+ miEscuela miProfesor +--------+
| Escuela |--------------------------------->|Profesor| 
+---------+ 1..1 1..* +--------+ 
*/
Ferreiras Asociaciones de clases en Java 55
import java.util.Vector;
class Escuela {
private String nombre;
private Vector<Profesor> profesores;
public Escuela( Vector<Profesor> vp, String no ) {
profesores = vp;
nombre = no;
} 
public String getNombre() { return nombre; }
public void mostrarProfes( ) {
for( int i = 0; i < profesores.size(); ++i ) {
System.out.println( profesores.get(i).getNombre() );
} 
} 
}
Ferreiras Asociaciones de clases en Java 56
class Profesor {
private String nombre;
public Profesor( String no ){
nombre = no; 
}
public String getNombre() { return nombre; }
}
Ferreiras Asociaciones de clases en Java 57
public class Asociacion2 {
public static void main( String [] fofi ) {
Profesor p1 = new Profesor( "Ramon Turey");
Profesor p2 = new Profesor( "Eugenio Santos");
Profesor p3 = new Profesor( "Maria Tutu");
Vector<Profesor> vp = new Vector<Profesor>();
vp.add(p1);
vp.add(p2);
vp.add(p3);
Escuela e1 = new Escuela( vp, "Geografia" );
System.out.println("\n* Los profesores de " + e1.getNombre() + " son:");
e1.mostrarProfes(); 
}
}
Ferreiras Asociaciones de clases en Java 58
*
C:\Archivos de programa\Java\jdk1.7.0_13\bin>javac Asociacion2.java
C:\Archivos de programa\Java\jdk1.7.0_13\bin>java Asociacion2
* Los profesores de Geografia son:
Ramon Turey
Eugenio Santos
Maria Tutu
C:\Archivos de programa\Java\jdk1.7.0_13\bin>
*/
Ferreiras Asociaciones de clases en Java 59
/*
Asociacion3.java
jdk1.7.0_13
Ferreiras / Java / Asociacion de clases / M-M
En la UASD un Estudiante cursa asignaturas varios Departamentos y
un Departamento tiene inscritos varios Estudiantes.
* *
Estudiante ---------------- Departamento 
Para implementar esta asociacion:
* 1 1 * 
Estudiante --------------- Curso --------------- Departamento
Ver código completo en el grupo.
*/
Ferreiras Asociaciones de clases en Java 60
C:\Archivos de programa\Java\jdk1.7.0_13\bin>javac Asociacion3.java
C:\Archivos de programa\Java\jdk1.7.0_13\bin>java Asociacion3
* El Estudiante Antonio Lopez
* Tiene clases en el curso AB-101
* Las asignaturas son
Fisica
Matematica
Informatica
* Del departamento Fisica
* Tienen clases en el curso AB-101
* Los estudiantes
Antonio Lopez
Puerta Rota
Pedro La Cosa
C:\Archivos de programa\Java\jdk1.7.0_13\bin>
Ferreiras Asociaciones de clases en Java 61
���� Un ejemplo de implementación de interés 
es el de la siguiente asociación reflexiva:
Curso
P
re
rr
eq
ui
si
to
∗
∗
Un Curso es prerrequisito de muchos Curso
Muchos Curso son prerrequisito de un Curso
Ferreiras Asociaciones de clases en Java 62
� Implementada como asociación 
unidireccional, representará esta situación:
curso9:Cursocurso6:Curso
curso5:Curso
curso7:Curso
curso3:Curso
curso4:Curso
curso2:Curso
El objeto Curso9:Curso conoce 
que los objetos curso2:Curso, 
curso3:Curso y curso4:Curso 
son sus prerrequisitos
El objeto Curso9:Curso no 
conoce que los objetos 
curso7:Curso, curso6:Curso y 
curso5:Curso lo consideran 
como uno de sus prerrequisitos, 
que dependen de el 
Ferreiras Asociaciones de clases en Java 63
La implementación unidireccional, en Java, de la clase 
Curso tendría, entre otras cosas, lo siguiente: 
class Curso {
private String codigoCurso;
private String nombreCurso;
private double costoPorCredito;
private Vector<Curso > prerrequisitos;
//....
}
Para almacenar los 
objeto Curso que 
son su prerrequisito.
Ferreiras Asociaciones de clases en Java 64
Si la implementación bidireccional: 
class Curso {
private String codigoCurso;
private String nombreCurso;
private double costoPorCredito;
private Vector<Curso> prerrequisitos;
private Vector<Curso> prerrequisitoDe;
//....
}
Para almacenar los 
objetos Curso que 
son su prerrequisito.
Para almacenar los 
objeto Curso que lo 
consideran su 
prerrequisito.
Ferreiras Asociaciones de clases en Java 65
���� Asignación para ser entregada cuando 
sea requerida formalmente en el grupo:
Ahora es su turno Joven: Considere la situación de la vida real 
universitaria que usted conoce, esto es, varios profesores imparten 
clase en una misma aula, obviamente que a diferentes horarios cada 
uno, es decir, no se juntan dos profesores en una misma aula en un 
mismo horario, y un profesor puede impartir clase en varias aulas 
pero, si imparte clase, debe ser en un aula, sin que tenga “choque” 
de aulas. Un profesor querrá saber las aulas que tiene asignadas y 
un aula querrá saber los profesor que tiene asignados. 
Su trabajo: Hacer la representación y la 
implementación en código Java
Ferreiras Asociaciones de clases en Java 66
� Un equipo de críquet tiene 11 jugadores. Uno de ellos es 
el capitán;
� Un jugador sólo puede jugar para un equipo;
� El capitán lidera a los miembros del equipo;
Construir la asociación correspondiente. 
� A partir de la siguiente información acerca 
del juego de críquet:
Ferreiras Asociaciones de clases en Java 67
Jugador Equipo
1: Para su entrega, esperar el requerimiento formar en el grupo. 
Esto significa, que usted debe hacerla ya y guardarla a la espera 
de que sea requerida por el profesor. 
1 0..1
111
capitán
miembro-de �
1
10
 liderea
capitán
jugadores
���� Solución del problema anterior
���� Su tarea1: Implementar esta asociación
Ferreiras Asociaciones de clases en Java 68
EJEMPLOS
INF512_C++_Tema_???_Ejem.zip
Ferreiras Asociaciones de clases en Java 69
EJERCICIOS
INF512_C++_Tema_???_Ejem.doc
Ferreiras Asociacionesde clases en Java 70
���� Pendiente para una próxima versión: 
Clase de asociación (Association Class).
Ferreiras Asociaciones de clases en Java 71

Más contenidos de este tema