Vous êtes sur la page 1sur 3

Escuela Politcnica del Ejrcito

Programacin I
Nombre: Francisco Infante
RELACIONES ENTRE CLASES.
Las clases, al igual que los objetos, no existen de modo aislado. La Orientacin a Objetos
(POO) intenta modelar aplicaciones del mundo real tan fielmente como sea posible y por lo
tanto debe reflejar estas relaciones entre clases y objetos.
Existen tres clases bsicas de relaciones entre los objetos:

Agregacin Asociacin
Generalizacin / Especializacin. HERENCIA
o

Herencia Simple.

Herencia Mltiple.

Agregacin / Composicin (todo-parte//tiene-un // parte-de).


Esta relacin se presenta entre una clase TODO y una clase PARTE que es componente de
TODO. La implementacin de este tipo de relacin se consigue definiendo como atributo
un objeto de la otra clase que es parte-de.
Los objetos de la clase TODO son objetos contenedores. Un objeto contenedor es aquel que
contiene otros objetos.
En la agregacin, las clases contienen objetos, y no otras clases.
Tipos de agregacin

Por contenido fsico o por valor

El contenedor contiene el objeto en s. Cuando creamos un objeto contenedor, se crean


tambin automticamente los contenidos.

Agregacin conceptual o por referencia

Se tienen punteros a objetos. No hay un acoplamiento fuerte. Los objetos se crean y se


destruyen dinmicamente.
La relacin de agregacin/composicin establece jerarquas de clases por grado de
composicin.

Asociacin
Especifica una relacin semntica entre objetos no relacionados. Este tipo de relaciones
permiten crear asociaciones que capturen los participantes en una relacin semntica.
Es una relacin entre clases. Implica una dependencia semntica. Son relaciones del tipo
pertenece_a o est_asociado_con. Se da cuando una clase usa a otra clase para realizar
algo.

Una asociacin es una conexin entre clases, una conexin semntica entre objetos de las
clases implicadas en la asociacin.
El establecimiento de una asociacin define los roles (papeles) o dependencias entre objetos
de dos clases y su multiplicidad; es decir, cuantas instancias (ejemplares) de cada clase
pueden estar implicadas en una asociacin.
Una asociacin es, normalmente, bidireccional, lo que significa que si un objeto se asocia
con otros objetos, ambos objetos se conocen entre si.
Una asociacin representa que objetos de dos clases tienen un enlace entre ellos, lo que
significa por ejemplo, que ellos conocen sobre los otros, estn conectados a, para cada x
hay una y, etc. La asociacin se representa por una lnea que une a las dos clases y el
nombre de la asociacin se escribe en la lnea.
Cuando una asociacin conecta dos clases se denomina binaria y cuando lo hace con ms
de dos clases se denomina n-aria.

public class Persona{


private Empresa empresa=null;
public Empresa getEmpresa(){
return this.empresa;
}
public void setEmpresa(Empresa empresa){
this.empresa=empresa;
}
}
public class Empresa{
private Persona perso=null;
public Persona getPersona(){
return this.perso;
}
public void setPersona(Persona p){
perso=p;
}

Esto significa que un objeto de la clase persona podr contener a un objeto de la clase
empresa y viceversa, si pensamos bien, esto significa contencin de uno en otro de forma
infinita...
sta es una forma de lograr que una clase tenga acceso a los elementos de otra clase,
motivo por el cual, algunos prefieren las relaciones estructurales de asociacin, agregacin
y composicin por encima de la herencia. Esto es muy respetable, discutible y probable,
razn por la cual, no hay problema en estos criterios y sus usos.
Para el caso de las agregaciones y las composiciones se hace lo mismo, solo que lo normal
es que los atributos de las clases que representan el todo sean tipo vector, arreglo o lista
para denotar que hay ms de un elemento que conforma el todo o que hace parte de.

public class Empresa{


private Clientes[ ] clientes=null;
public Clientes[ ] getClientes(){
return this.clientes;
}
public void setPersona(Clientes[ ] cliente){
clientes = cliente;
}
}
public class Clientes{
private Empresa empresa=null;
public Empresa getEmpresa(){
return this.empresa;
}
public void setEmpresa(Empresa empresa){
this.empresa=empresa;
}
}

Vous aimerez peut-être aussi