Relacion Entre Clases II
description
Transcript of 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
2
CONTENIDO
• Conceptos generales, tipos de relaciones
• Asociación
• Dependencia
• Generalización y Especialización (Herencia)
• Referencias
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.
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.
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
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..*
7
Propiedades en la Asociación Binaria
Multiplicidad
Cliente Factura1..*11 1..*
Facultad Profesor
*11 *
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:
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
10
Generalización y Especialización (Herencia)
public class Empleado {
……………………….
}
public class Profesor extends Empleado {……………………….
}
public class PAS extends Empleado {……………………….
}
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.
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.
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.
14
Generalización y Especialización (Herencia)
Ejemplo: CalculadoraBase – Calculadora1
15
Ejemplo: CalculadoraBase – Calculadora1
public class CalculadoraBase { public int suma(int n1,int n2){ int rpta=n1+n2; return rpta; }}
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
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
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