Está en la página 1de 21

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERIA DE SISTEMAS


E.A.P Ingeniera de Sistemas

ALGORITMICA II
RELACION ENTRE CLASES

CONTENIDO

Conceptos generales, tipos de relaciones


Diagrama de clases ejemplo con
relaciones bsicas
Asociacin
Agregacin
Composicin

Referencias

Conceptos generales
Las relaciones existentes entre las diferentes
clases de un sistema nos indican cmo se
comunican los objetos de estas clases entre s.
Los mensajes navegan por las relaciones
existentes entre las distintas clases.
Tipos de relaciones:
Asociacin : conexin entre clases.
Dependencia: relacin de uso.
Generalizacin/especializacin:
relaciones de herencia.

Diagrama de clases - Ejemplo


Asociacin

Autor

Libro
titulo
imprimir()

Dependencia

Generalizacin

Imprenta

Tesis

Diagrama de clases con tres relaciones bsicas

Asociacin
Relacin estructural que describe una conexin
entre dos o ms objetos/clases.
Ejemplos de asociaciones:
Asociacin binaria: asociacin entre dos clases
se representa mediante una lnea continua que
conecta las dos clases asociadas.
Agregacin y Composicin: relacin entre las
partes y el todo.
Asociacin n-aria: asociacin entre tres o ms
clases.

Asociacin Binaria
Por el nombre de la asociacin
escribe >
Autor
Libro

Por el nombre del rol

Autor

+1..* autor

Libro
+obra 1..*

Propiedades en la Asociacin Binaria


Multiplicidad
Cliente

1..*

Facultad

Factura

Profesor
1

Agregacin
La agregacin es un caso especial de asociacin. El
agregado indica que la agregacin entre clases es un
tipo de todo-parte. Un ejemplo de un agregado es un
automvil que consta de cuatro ruedas, un motor, un
chasis, cuatro puertas etc.
Las palabras o frases que se utilizan para identificar
agregados son:
es parte de , Consta de , Tiene un, Contiene,
etc.

BANCO

CLIENTE
TIENE

Agregacin
En el ejemplo:
CLIENTE

BANCO
TIENE

Tanto banco como cliente tienen existencia


independiente,
pero
el
banco
est
conformado por cliente. Un cliente, puede ser
cliente no slo de un banco, sino de varios
bancos; y, si un objeto de tipo Banco deja de
existir, los objetos de tipo Cliente no tiene
que hacerlo, en esto radica la independencia.

Composicin
Agregacin disjunta y estricta, las partes slo
existen asociadas al compuesto.

Generalizacin y Especializacin (Herencia)


Generalizacin: factorizar propiedades comunes de
clases hijas en una clase padre.
Especializacin: a partir de una superclase o clase
padre se crean subclases.
Ejemplo:

Superclase
Subclases

11

Generalizacin y Especializacin (Herencia)


public class Empleado {
.
}
public class Profesor extends Empleado {
.
}
public class PAS extends Empleado {
.
}
12

Generalizacin y Especializacin (Herencia)


Generalizacin y/o Especializacin es la
herencia, y los nombres usados para nombrar
las clases son:
Superclase subclase
Clase padre clase hija
Clase base clase derivada.
Las clases hijas heredan atributos y
operaciones que estn disponibles en sus
clases padres.
13

Generalizacin y Especializacin (Herencia)


En Java se utiliza la palabra clave extends.
Toda clase en Java hereda de una clase padre,
cuando no se indica explcitamente, hereda de
la clase Object que se encuentra en el paquete
java.lang.
Para el caso anterior la clase padre Empleado
esta heredando de la clase java.lang.Object.

14

Generalizacin y Especializacin (Herencia)


Ejercicios:
Dada una clase base CalculadoraBase, con un mtodo
para sumar dos enteros; otra clase derivada de
CalculadoraBase, denominada Calculadora1 con los
mtodos para hallar factorial de un entero, y de un entero
largo, hallar la suma de dos enteros en una clase con el
mtodo principal definiendo un objeto de la clase
Calculadora1.

15

Generalizacin y Especializacin (Herencia)


Ejemplo: CalculadoraBase Calculadora1

16

Ejemplo: CalculadoraBase Calculadora1

public class CalculadoraBase {


public int suma(int n1,int n2){
int rpta=n1+n2;
return rpta;
}
}

17

Ejemplo: CalculadoraBase Calculadora1


public class Calculadora1 extends CalculadoraBase {
public int factorial(int n){
int f=1;
while(n>1){
f=f*n--; }
return f;
}
public long factorial(long n){
long f=1;
while(n>1) {
f=f*n--; }
return f;
}
}
18

Ejemplo: CalculadoraBase Calculadora1

public class Pruebacalculadora {


public static void main(String[] args) {
int n1=7, n2=12;
Calculadora1 obj=new Calculadora1();
int suma=obj.suma(n1,n2);
System.out.println("La suma es:"+suma);
}
}
19

Tarea

Implemente un sistema para manejar los productos de un


banco como mnimo tarjeta de crdito, tarjeta de debito,
prstamo personal y prstamo vehicular.
Definir una clase base y aplicar el concepto de clase abstracta
y herencia.
Simular el otorgamiento de estos productos a los clientes del
banco, defina un esquema de herencia para los clientes.
Desarrollar el TAD y la implementacin en java.
Crear una clase ArregloProducto para manejar la cartera de
productos otorgados

REFERENCIAS
[1]. Joyanes, Luis; Zahonero, Luis. Programacin en C, C++,
Java y UML. 2010. Edit. Mc Graw Hill. Mxico.
[2]. Deitel & Deitel. Java como programar. 2008. Edit. Pearson
Prentice Hall. Mxico.
[3]. Francisco, Javier Ceballos. Java 2. Curso de Programacin.
2000 . Edit. Alfa Omega Ra-ma
[4]. Douglas Bell, Mike Parr. Java para estudiantes. 2003. Edit.
Pearson.
[5]. Jhon Zukowski. Java 2. 2003. Edit. Anaya Multimedia.
[6]. Coronel, Eric 2009. Editora Macro. Per.
[7]. Berzal, Fernando. Programacin Orientada Objetos.
Introduccin Java.

También podría gustarte