Relacion Entre Clases II

18
1 UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERIA DE SISTEMAS E.A.P Ingeniería de Sistemas RELACION ENTRE CLASES ALGORITMICA II

description

Programacion en Java, relacion entre clases

Transcript of Relacion Entre Clases II

Page 1: Relacion Entre Clases II

1

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOSFACULTAD DE INGENIERIA DE SISTEMAS

E.A.P Ingeniería de Sistemas

RELACION ENTRE CLASES

ALGORITMICA II

Page 2: Relacion Entre Clases II

2

CONTENIDO

• Conceptos generales, tipos de relaciones

• Asociación

• Dependencia

• Generalización y Especialización (Herencia)

• Referencias

Page 3: Relacion Entre Clases II

3

Conceptos generales

Las relaciones existentes entre las diferentes clases de un sistema nos indican cómo se comunican los objetos de estas clases entre sí.

Los mensajes “navegan” por las relaciones existentes entre las distintas clases.

Tipos de relaciones:Asociación : conexión entre clases.

Dependencia: relación de uso.

Generalización/especialización:

relaciones de herencia.

Page 4: Relacion Entre Clases II

4

Asociación

Relación semántica entre dos o más clases que especifica conexiones entre las instancias de estas clases. Ejemplos de asociaciones: Asociación binaria: asociación entre dos clases, se representa mediante una línea continua que conecta las dos clases asociadas. Agregación y Composición: relación entre las partes y el todo. Asociación n-aria: asociación entre tres o más clases.

Page 5: Relacion Entre Clases II

5

Asociación Binaria

Asociación entre dos clases.

Propiedades en la asociación binaria: Por el nombre de la asociación Por el nombre de rol Multiplicidad Ordenación Modificabilidad Navegabilidad Visibilidad

Page 6: Relacion Entre Clases II

6

Propiedades en la Asociación Binaria

Por el nombre de la asociación

Autor Libroescribe >

Por el nombre del rol

LibroAutor+1..* autor

+obra 1..*

Page 7: Relacion Entre Clases II

7

Propiedades en la Asociación Binaria

Multiplicidad

Cliente Factura1..*11 1..*

Facultad Profesor

*11 *

Page 8: Relacion Entre Clases II

8

Dependencia

Un cambio en la independiente afecta a la dependiente pero no al contrario.

Una clase (dependiente) usa a otra que la necesita, clase (independiente) para ejecutar algún proceso. Se representa con una flecha discontinua va desde la clase dependiente a la clase independiente. Ejemplo:

Page 9: Relacion Entre Clases II

9

Generalización y Especialización (Herencia)

Generalización: factorizar propiedades comunes de clases hijas en una clase padre.Especialización: a partir de una superclase o clase padre se crean subclases.

Ejemplo:

Superclase

Subclases

Page 10: Relacion Entre Clases II

10

Generalización y Especialización (Herencia)

public class Empleado {

……………………….

}

public class Profesor extends Empleado {……………………….

}

public class PAS extends Empleado {……………………….

}

Page 11: Relacion Entre Clases II

11

Generalización y Especialización (Herencia)

Generalización y/o Especialización 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 están disponibles en sus clases padres.

Page 12: Relacion Entre Clases II

12

Generalización y Especialización (Herencia)

En Java se utiliza la palabra clave extends.

Toda clase en Java hereda de una clase padre, cuando no se indica explícitamente, 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.

Page 13: Relacion Entre Clases II

13

Generalización y Especialización (Herencia)

Ejercicios:

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

Page 14: Relacion Entre Clases II

14

Generalización y Especialización (Herencia)

Ejemplo: CalculadoraBase – Calculadora1

Page 15: Relacion Entre Clases II

15

Ejemplo: CalculadoraBase – Calculadora1

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

Page 16: Relacion Entre Clases II

16

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; }}

Ejemplo: CalculadoraBase – Calculadora1

Page 17: Relacion Entre Clases II

17

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); }}

Ejemplo: CalculadoraBase – Calculadora1

Page 18: Relacion Entre Clases II

18

[1]. Joyanes, Luis; Zahonero, Luis. Programación en C, C++, Java y UML. 2010. Edit. Mc Graw Hill. México.

[2]. Deitel & Deitel. Java como programar. 2008. Edit. Pearson Prentice Hall. México.

[3]. Francisco, Javier Ceballos. Java 2. Curso de Programación. 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. Programación Orientada Objetos. Introducción Java.

REFERENCIAS