Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abril 2005
Relaciones entre clases Dependencia: es una relacin de uso en donde los cambios en la especificacin de una clase, pueden afectar a otra clase que la usa
Dependencia
Ventana
# tamao: integer + configurar() + abrir() + cerrar() + mover() + mostrar() + manejarEvento()
Evento
Relacin de dependencia
De la prctica No. 1:
Relacin de dependencia
De la prctica No. 1:
package mx.uam.cursojava.practica1; public class Principal { public static void main(String [] argc) { Principal p = new Principal(); p.realizaPruebaOrdenado(10000); } /* Relacin de dependencia de la class principal hacia Arreglo y Cronometro */ public void realizaPruebaOrdenado(int elems) { Arreglo a= new Arreglo(elems); Cronometro cron=new Cronometro(); cron.arrancar(); a.ordenaBurbuja(); cron.detener() cron.mostrarTiempo();
} }
// // // //
Generalizacin (herencia)
Consola
6
CajaDialogo
Relacin de generalizacin
Herencia simple: una subclase tiene exactamente un padre Herencia mltiple: una subclase hereda de varios padres, sin traslape de estructura o comportamiento Semnticamente la relacin se puede verificar comprobando si la subclase es un tipo de su padre
7
Es un tipo de polimorfismo universal en donde el comportamiento declarado o implementado en una tipo general (superclase), es incluido en tipos especficos (subclases)
Generalizacin
Control de acceso
Los miembros declarados como protected, public o package son accesibles en las subclases. Sin embargo, los atributos no pueden declararse como public o package (encapsulamiento) Los mtodos declarados como final no pueden redefinirse en las subclases Los mtodos declarados como abstract, son implementados en las subclases
abstract public class { abstract public int ArregloException; } Elemento compara(Elemento elem) throws // este mtodo se implementar en las // las subclases de esta clase
Clases Abstractas
Son clases de las cuales no se obtienen objetos:
Semnticamente, son muy generales y la obtencin de objetos no tiene sentido, por ejemplo un objeto de la clase persona Es mas significativo obtener objetos de sus subclases, por ejemplo persona heredando a alumno Sintcticamente, el compilador de java lo impide
10
Clases Abstractas
Son clases que definen solo parte de su implementacin, dejando a las subclases (extensiones) la tarea de implementaciones especficas de algn mtodo o de todos En la prctica 2, el metodo compara() de la class elemento es declarado como abstract y es implementado en class Alumno y en class Libro
11
12
Asociacin: es una relacin estructural que expresa la conexin reciproca entre objetos de de 2 clases distintas
14
Relacin todo/partes en donde una clase representa el todo y otra una de sus partes Se realiza declarando referencias dentro de los atributos (rombo vaco en UML)
Todo
Organizacin
1
Agregacin Parte
*
Departamento
15
Agregacin simple
De la prctica No. 1
Class Arreglo { int m_arreglo[]; int m_tamanio; public Arreglo(int tamanio) { m_tamanio=tamanio; m_arreglo=new int[m_tamanio] } // Agregacin simple public agregarElemento() } ........... { }
Arreglo
1
int
m_arreglo
...
16
null
es una forma de agregacin, con fuerte pertenencia y tiempo de vida coincidente como parte del todo.
Todo
Window
1
Parte
*
Composicin
Frame
17
Composicin
De la prctica No.2
public class Principal { private Teclado teclado = new Teclado(); // Ejemplo de //relacin de composicin public static void main(String [] argc) { Principal p = new Principal(); // Aqu se cachan excepciones que pueda generar el menu. try { Principal p.pruebaConMenu(); } 1 catch(Exception ex) { ex.printStackTrace(); 1 } }
18
Teclado