Diremos que dos (o ms) clases tienen una relacin de ASOCIACION cuando
una de ellas tenga que requerir o utilizar alguno de los servicios (es decir,
acceder a algunas de las propiedades o mtodos) de las otras.
Como se puede observar, las relaciones de asociacin son ms dbiles que las
relaciones de agregacin, en el sentido de que no requieren (aunque en
ocasiones lo implementamos asi) que creemos un objeto nuevo a partir de
otros objetos, sino nicamente que los objetos interacten entre s.
Las relaciones de asociacin crean enlaces entre objetos. Estos enlaces no
tienen por qu ser permanentes (es ms, en la mayora de los casos, no lo
sern). Los objetos deben tener entidad fuera de la relacin (a diferencia de las
relaciones de composicin).
Un ejemplo clsico de relacin de asociacin es la relacin empresa
empleado. Podemos definir una clase Empresa y una clase Empleado que
nos permitan representar esta relacin:
Empresa
Empleado
Actor
-nombre : String
-nacimiento : int
+ Actor()
+Actor(entrada: String,
entrada: int)
+getNombre() : String
+setNombre(entrada:
String): void
+getNacimiento(): int
+setNacimiento(entrad
a: int): void
+mostrarActor(): void
Pelcula
-titulo: String
-director: String
-duracin: int
-actores: Actor[15]
-numeroActores: int
+Pelicula()
+Pelicula(entrada: String, entrada:
String, entrada: int)
+getTitulo(): String
+setTitulo(entrada:String): void
+getDirector(): String
+setDirector(entrada: String): void
+getDuracion(): int
+setDuracion(entrada: int) : void
+mostrarPelicula(): void
parte de diversas carreras, del mismo modo que un objeto de la clase Carrera
puede ser participado por mltiples atletas.
A continuacin, lo representaremos en UML:
Resultado
-tiempo: doubl
-posicion: int
+Resultado(entr
ada: double,
entrada: int)
+getTiempo():
double
+getPosicion():
int
Carrera
-distancia: int
-ronda: int
-fecha: long
+Carrera(entrada: int,
entrada: int, entrada:
long)
+getDistancia(): int
+setDistancia(entrada:int
)
+getRonda(): int
+setRonda(entrada: int)
+getFecha(): long
+setFecha(entrada: long)
Atletas
-nombre: String
-nacimiento: long
+Atleta(entrada: String,
entrada: long)
+getNombre(): String
+getNacimiento(): long