Relaciones entre clases

Documentos relacionados
NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Derechos de Acceso: COMPOSICION

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Construcciones del Lenguaje Java

Curso de Java POO: Programación orientada a objetos

Introducción a Java (2)

Definición. Mónica E. García García Feb 07

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Universidad Salesiana de Bolivia

Prueba N o 1. Programación II

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Unidad I. Introducción al Lenguaje Java. Ing. José Luis Llamas Cárdenas

Conceptos más avanzados de Programación Orientada a Objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

UML: INTRODUCCIÓN, ORIENTACIÓN a Objetos

La Herencia: Teoría (1)

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Tema 5 Corrección y Robustez Excepciones en Java

Tema 4. Excepciones en Java

Conceptos de Programación Orientada a Objetos

INTRODUCCION A LA PROGRAMACION EN JAVA

Diseño Basado en Componentes. Curso 2008 / 09

package com.example.dialogov1;

PROYECTO FIGURAS DIAGRAMA DE FLUJO

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Tema 3. Programación orientada a objetos en Java (Parte 1)

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Aplicaciones de Escritorio

POO en lenguajes compilados de tipos estáticos (Java y C#)

PROGRAMACION ORIENTADA A OBJETOS EN C++

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

UML a Java. Paquetes Ejemplo - Paquetes. Clases - Forma Básica. Clases Forma Avanzada- Curso de Arquitecturas de Software

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

Tema 14: Excepciones

CLA. Diagramas de clases en Métrica V3

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Tutorial 1: Desarrollo de un plugin

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)

Resumen Manejo de Excepciones

Programación orientada a objetos. Resumen de Temas Unidad 6: Polimorfismo y reutilización

Soluciones Ejercicios Tema 3

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

1. Qué tipos de relación hay entre las siguientes clases?

Conceptos Básicos de la Programación Orientada a Objetos con Java

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Primer Parcial Septiembre 5 de 2009

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 DELEGADOS. Ing. Bruno López Takeyas, M.C.

4.1 - OBJETOS Y CLASES

DIAGRAMAS DE UML DIAGRAMAS DE CASO DE USO

UD 4 GESTIÓN DE ERRORES. Pedro J. Ponce de León. Versión

Tutorial básico del entorno de desarrollo Eclipse.

Patrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015

Práctica 4: Java Remote Method Invocation (RMI)

Herencia. Hay clases que comparten gran parte de sus características.

Interfaces gráficas I

Relaciones entre clases: Diagramas de clases UML

El lenguaje de programación Java

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)

Práctica: Creación de un programa C# sencillo

PROGRAMACIÓN EN JAVA

Programación Orientada a Objetos en Java

Programación orientada a objetos

Programación en Java. Programación en OO

Programación Orientada a Objetos (POO)

MOO - Metodología y Programación Orientada a Objetos

Un caso de uso es una tarea que debe poder llevarse a cabo con el apoyo del sistema que se está desarrollando, se representa mediante un óvalo.

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Código: Salida. Circulo>>(1,2,2.45) Punto >>(1,1)

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Bloque práctico 2: Java

Transcripción:

Relaciones entre clases 1 Humberto Cervantes Maceda Alfonso Martínez Martínez Abril 2005

Relaciones entre clases Dependencia Generalización Asociación Realización 2

Relaciones entre clases Dependencia: es una relación de uso en donde los cambios en la especificación de una clase, pueden afectar a otra clase que la usa Dependencia Ventana # tamaño: integer + configurar() + abrir() + cerrar() + mover() + mostrar() + manejarevento() Evento 3

Relación de dependencia De la práctica No. 1: 4

Relación de dependencia De la práctica No. 1: package mx.uam.cursojava.practica1; public class Principal public static void main(string [] argc) Principal p = new Principal(); p.realizapruebaordenado(10000); /* Relación de dependencia de la class principal hacia Arreglo y Cronometro */ public void realizapruebaordenado(int elems) Arreglo a= new Arreglo(elems); Cronometro cron=new Cronometro(); 5 cron.arrancar(); a.ordenaburbuja(); cron.detener() cron.mostrartiempo(); // los objetos a y cron // existen solo durante // la ejecución de: // p.realizapruebaordenado(10000)

Relaciones entre clases Generalización: Es una relación entre una clase general (superclase) y otra específica (subclase): Generalización/Especialización Ventana # tamaño: integer Generalización (herencia) + configurar() + abrir() + cerrar() + mover() + mostrar() + manejarevento() 6 Consola CajaDialogo

Relación de generalización Herencia simple: una subclase tiene exactamente un padre Herencia múltiple: una subclase hereda de varios padres, sin traslape de estructura o comportamiento Semánticamente la relación se puede verificar comprobando si la subclase es un tipo de su padre 7

Polimorfismo por inclusión [Cardelli & Wegner] Es un tipo de polimorfismo universal en donde el comportamiento declarado o implementado en una tipo general (superclase), es incluido en tipos específicos (subclases) 8

Generalización 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 métodos declarados como final no pueden redefinirse en las subclases Los métodos declarados como abstract, son implementados en las subclases 9 abstract public class Elemento abstract public int compara(elemento elem) throws ArregloException; // este método se implementará en las // las subclases de esta clase

Clases Abstractas Son clases de las cuales no se obtienen objetos: Semánticamente, son muy generales y la obtención 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 Sintácticamente, el compilador de java lo impide 10

Clases Abstractas Son clases que definen solo parte de su implementación, dejando a las subclases (extensiones) la tarea de implementaciones específicas de algún método o de todos En la práctica 2, el metodo compara() de la class elemento es declarado como abstract y es implementado en class Alumno y en class Libro 11

Clase Abstracta y Generalización De la Práctica No. 2 Elemento es una clase abstracta, el metodo compara( ) se implementa en las clase Libro y Alumno en donde la comparación entre elementos es diferente 12

Clase Abstracta y Generalización De la Práctica No. 2 import mx.uam.cursojava.practica2.arregloexception; import mx.uam.cursojava.practica2.elemento; public class Libro extends Elemento // Relación de generalización // hereda de elemento private String m_titulo; private String m_autor; private int m_isbn; public Libro(String titulo, String autor, int isbn) 13 public int compara(elemento elem) throws ArregloException // La comparación se realiza entre dos elementos de tipo // Libro

Relaciones entre clases Asociación: es una relación estructural que expresa la conexión reciproca entre objetos de de 2 clases distintas 14

Relación de asociación: Agregación simple Relación todo/partes en donde una clase representa el todo y otra una de sus partes Se realiza declarando referencias dentro de los atributos (rombo vacío en UML) Todo Organización 1 Parte * Departamento Agregación 15

Agregación simple De la práctica No. 1 Arreglo 1 * int Class Arreglo int m_arreglo[]; int m_tamanio; public Arreglo(int tamanio) m_tamanio=tamanio; m_arreglo=new int[m_tamanio] // Agregación simple public agregarelemento()... m_arreglo... 16 null

Relación de asociación: Composición es una forma de agregación, con fuerte pertenencia y tiempo de vida coincidente como parte del todo. Todo Window 1 Parte Composición * Frame 17

Composición De la práctica No.2 public class Principal private Teclado teclado = new Teclado(); // Ejemplo de //relación de composición public static void main(string [] argc) Principal p = new Principal(); 18 // Aquí se cachan excepciones que pueda generar el menu. try p.pruebaconmenu(); Principal 1 catch(exception ex) ex.printstacktrace(); 1 Teclado