You are on page 1of 10

1

Curso de Metodologa de la Programacin Orientada a Objetos

5. RELACIONES ENTRE CLASES


5.1.

Ligas y Asociaciones

La relacin entre objetos se conoce como liga.


Una asociacin describe la relacin entre clases de objetos, y describe posible ligas, donde
una liga es una instancia de una asociacin, al igual que un objeto es una instancia de una
clase.
Ejemplo:
Universidad
<<instance of>>

<<instance of>>

Estudiante

Juan Carlos Prez: Estudiante

Unl: Universidad

Una asociacin entre clases significa que existe una liga entre los objetos de las clases
asociadas.
La asociacin, al igual que la liga, es por naturaleza bidireccional. Por lo general, el
nombre de la liga o asociacin implica una direccin, pero puede ser invertida para mostrar
la direccin opuesta. Cualquiera de las dos direcciones es igualmente correcta, aunque por
lo general se acostumbra a leer de izquierda a derecha.
Ejemplo:
estudiante estudia en la universidad
Opuesto: universidad da estudios a estudiante

El nombre de una liga debe ser igual al nombre de la


correspondiente asociacin

Notacin - Liga
Para representar una liga se utiliza una lnea conectando los dos objetos, conteniendo el
nombre de la liga en letras cursivas en minsculas.
nombreObjeto: NombreClase1

Xavier Caldern : Persona

nombre-de-la-liga

trabaja-para

nombreObjeto: NombreClase2

Microsoft : Compaa

Notacin Asociacin

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

2
Curso de Metodologa de la Programacin Orientada a Objetos

Para representar una asociacin se utiliza una lnea conectando las dos clases participantes
en la relacin, conteniendo el nombre de la asociacin en letras cursivas en minsculas,
comnmente incluye otros como la multiplicidad.
NombreClase1

nombre-de-la-liga

NombreClase2

Ejemplos de Asociaciones:
Jugador

Persona

juega-en

trabaja-para

Compaa

tiene

Pais

Profesor

Equipo

Presidente

ensea-a

Estudiante

5.2. Grado de la asociacin


El grado de una asociacin se determina por el nmero de clases conectadas por la misma
asociacin.
Tipos
Las asociaciones pueden ser binarias, ternarias o de mayor grado.
a) Binarias: Se identifican como una lnea slida que une dos clases. Representa una
relacin de algn tipo entre dos clases.
Ejemplo: La relacin entre una compaa y sus empleados
Persona

trabaja-para

Compaa

da-trabajo-a

b) Ternarias y N-arias: Las asociaciones pueden ser de mayor grado se relacionan a la


misma vez ms de dos clase. Aparte de relaciones binarias, lo ms comn son
relaciones ternarias (entre tres clases), relaciones de ms alto nivel son mucho menos
comunes. Mientras el grado de una relacin aumenta, su comprensin se dificulta, y se
debe considerar partir las relaciones en varias relaciones binarias.
Ejemplo: Puede existir una relacin ternaria entre estudiante, profesor y universidad
donde un estudiante estudia con un profesor en una universidad.
Profesor

Estudiante

Universidad

5.3. Asociaciones reflexivas

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

3
Curso de Metodologa de la Programacin Orientada a Objetos

Las asociaciones pueden ser reflexivas relacionando distintos objetos de una misma
clase.
Ejemplo: Para una clase Persona puede existir una asociacin Pariente que describe
que dos objetos de tipo Persona, como Juan Prez y Laura Prez son parientes.
pariente-de

Juan Prez: Persona

Laura Prez: Persona

En esta figura se muestra el diagrama de instancias describiendo una asociacin


reflexiva de objetos de la clase Persona. Mientras que la asociacin reflexiva
pariente-de para la clase Persona se representa as:
Persona

pariente-de

El grado de una asociacin reflexiva puede ser binario, ternario o de mayor grado
dependiendo del nmero objetos involucrados.

5.4. Multiplicidad
La multiplicidad (cardinalidad) de una asociacin especifica cuntas instancias de una clase
se pueden relacionar a una sola instancia de otra clase.
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)

Cuando la multiplicidad mnima es 0, la relacin es opcional.


Una multiplicidad mnima mayor o igual que 1 establece una relacin obligatoria.
Ejemplo: En el caso de Estudiante y Universidad, la multiplicidad est dada por el nmero
de estudiantes que puedan estudiar en una sola universidad. Es decir que muchos objetos
tipo Estudiante se conectan a un solo objeto de tipo Universidad.

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

4
Curso de Metodologa de la Programacin Orientada a Objetos

La multiplicidad restringe una asociacin limitando el nmero de objetos que pueden


relacionarse a un objeto en particular.
La multiplicidad depende del contexto de la aplicacin. Existen distintos tipos de
multiplicidades para las asociaciones que son:
Uno-uno: donde dos objetos se relacionan de forma exclusiva, uno con el otro.
Por ejemplo:

Cada Universidad tiene un Rector o


Cada Rector rige una Universidad

Notacin:
NombreClase1

NombreClase2

Universidad

Rector

Uno-muchos: Donde uno de los objetos puede estar ligado a muchos otros
objetos.
Por ejemplo:

Muchos Estudiantes pueden estudiar en una Universidad o


Una Universidad da estudios a cada Estudiante.

Notacin:
NombreClase1

NombreClase2

*
Estudiante

Universidad

Muchos-muchos: donde cada objeto de cada clase puede estar ligado a muchos
otros objetos.
Por ejemplo:

Muchos Estudiantes pueden tomar varias Unidades

NombreClase1

NombreClase2

Estudiante

Unidad

La multiplicidad se incluye en el diagrama de clases


nicamente.
La multiplicidad para relaciones de mayor grado es ms
compleja, por lo que esta anotacin se vuelve un poco
ambigua para relaciones de mayor orden, ya que no sabra
como leerse la relacin.

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

5
Curso de Metodologa de la Programacin Orientada a Objetos

Entre las notaciones para representar una relacin opcional tenemos:


Cero o Uno; describe una relacin opcional 0 o 1. Esto significa que dos
objetos pueden o no estar conectados y, si lo estn, corresponden a una
multiplicidad de 1. La notacin a utilizarse es la siguiente:
NombreClase1
Casa

NombreClase2

0..1

0..1

Chimenea

La relacin de muchos se puede restringir con un nmero o secuencia de nmeros


a)

Cero o ma s: Una relacin con multiplicidad donde una empresa tiene cero o
ms sucursales.
Empresa

Sucursal
0..*

b)

Exactamente: Una relacin donde una persona tiene exactamente dos pulmones
Persona

Pulmon
2

c)

Po r lo men o s: Una relacin donde una Cooperativa tiene por lo menos quince o
ms socios.
Cooperativa

Socio
15..*

d)

Po r lo men o s - h a sta : Una relacin donde un auto tiene por lo menos tres hasta
cinco puertas.
Auto

Puerta
3..5

Ejemplos de multiplicidad.

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

Curso de Metodologa de la Programacin Orientada a Objetos

Esposo

Maestro

Esta casado con ...,.

Ensea ...,.

Esposa

Estudiante
uno a muchos

Cajero

Atiende...,.

11
Casa

Tiene...,.

11
Estudiante de
tiempo completo

Triciclo

Huevera
C

1 Toma...,.

Tiene...,.

1 Cliente 1

o,1 1Chimenea 1

12..18

Horas
de creditos

uno a ninguno o uno

uno a 12 hasta 18

3 Ruedas

t1--- ontie-ne-.,. -- 12,2-41 Huevos


-

Docente:lng.Mireya Erreyes P.

uno a uno o mas

uno a 12 o 24

IV \ldulo

7
Curso de Metodologa de la Programacin Orientada a Objetos

5.5.

Herencia

La herencia es uno de los mecanismos de la programacin orientada a objetos, por medio


del cual una clase se deriva de otra, llamada entonces superclase, de manera que extiende
su funcionalidad. Una de sus funciones ms importantes es la de proveer Polimorfismo.
La idea es la de partir de las situaciones ms generales e ir derivando hacia las ms
particulares, creando categoras, de la misma forma en que piensa el ser humano.
Mamifero
-patas
-nombre
Mamifero(nom:
cadena,
np:entero)
+imprimirPatas():void
Perro

Gato

Se declaran las clases mamferos, gato y perro, haciendo que gato y perro sean unos mamferos (derivados de esta clase),
y se ve como a travs de ellos se nombra al animal pero as tambin se accede a patas dndole el valor por defecto para
esa especie.

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

8
Curso de Metodologa de la Programacin Orientada a Objetos

Otro ejemplo:

Tarea 4: Investigue y analice sobre


Clases abstractas, adems presente

Ejecucin de los pasos de mensajes con Herencia


Cuando a un objeto se le pasa un mensaje sucede lo siguiente:

Ventajas de la herencia
Ayuda a los programadores ahorrar cdigo y tiempo, ya que si tiene una
clase lista es solo de implementarla y listo todo el cdigo de esta se resume a
solo un llamado.
Docente: Ing. Mireya Erreyes P.

IV
Mdulo

9
Curso de Metodologa de la Programacin Orientada a Objetos

Los objetos pueden ser construidos a partir de otros similares. Para ello es
necesario que exista una clase base y una jerarqua (relacionamiento) de
clases.
La clase derivada puede heredar cdigo y datos de la clase base, aadiendo
cdigo o modificando lo heredado.
Las clases que heredan propiedades de otra clase pueden servir como clase
base de otras.

Docente: Ing. Mireya Erreyes P.

IV
Mdulo

Curso de Metodologa de la Programacin Orientada a Objetos

Docente: lng. Mireya Erreyes P.

IV \ld ulo

10

You might also like