Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec. Copyright @2002, I. Bernal. Iván Bernal, Ph.D. 4



Documentos relacionados
Curso de Java POO: Programación orientada a objetos

2.2.- Paradigmas de la POO

Programación Orientada a Objetos en Java

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Capitulo III. Diseño del Sistema.

Programación Orientada a Objetos con Java

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

Universidad de Cantabria

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Creación y administración de grupos de dominio

Diseño orientado a los objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Introducción a la programación orientada a objetos

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

GUÍA DE USUARIO DEL CORREO

Curso de Python Inicial

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

POLIMORFISMO "una interfaz, múltiples métodos".

Capítulos 2 y 5: Modelación con UML y Modelo Objeto

DISEÑO DE COMPONENTES DE SOFTWARE *

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

Rev Gestión Documental

Diagrama de Clases. Diagrama de Clases

Auditoría en Windows NT INTRODUCCIÓN AL WINDOWS NT

Modelo Entidad-Relación

Clases abstractas e interfaces

Introducción a Protégé

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

Formularios. Formularios Diapositiva 1

Qué es Google Calendar? Qué se puede hacer en Google Calendar?

Indice. .01 Introducci n. .02 Perfiles de usuario. .03 Ingreso al portal Mi Entel PCS Empresas. .04 Activación de los teléfonos móviles de la empresa

DCU Diagramas de casos de uso

Programación en Java. Programación en OO

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles.

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

Introducción a Google Calendar Breve guía sobre algunas de sus funcionalidades destacables.

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS

GENERACIÓN DE TRANSFERENCIAS

/05/2009

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

SAP Business Intelligence. Llenado Plantillas Indicadores BI Baseline

Relaciones entre clases: Diagramas de clases UML

BPMN básico. Clase Modelos de Procesos. Javier Bermudez

Guía rápida para crear cursos en Aulas virtuales

Horde Manual de usuario

TEMA 7: DIAGRAMAS EN UML

Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007

Trabajar con diapositivas

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

Guías. _Mi Entel. SMS Empresas

Ejercicios Diagramas de casos de uso

Ingeniería de Software II Tema 2: Diseño

Proxy Introducción

MANUAL DE AYUDA MANEJO DE SHAREPOINT CON GOTELGEST.NET

Nueva funcionalidad de compartir carpetas de correo electrónico desde la interfaz Web de correo de la Universidad de Sevilla.

Horde Manual de usuario

Manual de Usuario Sitio Web de la Red Federal de Capacitación

Para iniciar el programa CmapTools es necesario ir al menú inicio/ Todos los programas/ Carpeta IHMC CmapTools/ CmapTools 5.04.

Base de datos en Excel

ELABORACIÓN DE MATERIALES PARA LA PDI EN ACTIVINSPIRE TEMA 5

Principios y Métricas para el diseño de software

Windows Journal en dos patadas

Funciones, x, y, gráficos

Metadatos en Plataformas ECM

MANUAL DE USUARIO PLAN GENÉRICO DE AUTOCONTROL EN HOSTELERÍA ASOCIACIÓN DE EMPRESARIOS DE HOSTELERÍA DE GIPUZKOA 1

Bases de Datos en Visual FoxPro. Administrador de proyectos

Manual de usuario del Centro de Control

TEMA 8: DIAGRAMA DE CLASE EN UML

Microsoft Access proporciona dos métodos para crear una Base de datos.

MANUAL DE WEBMAIL MICROSCIENCE S.A.C.

Gestión de Empresas Visual e Interactiva E.R.P.

MS ACCESS BÁSICO 6 LOS INFORMES

Nombre: Francis Ariel Jiménez Zapata. Matricula: Tema: Trabajando con Windows Server Materia: Sistema Operativo II.

MANUAL DE USUARIO DESKTOP

Introduccion Tablon de Anuncios Recogida de Avisos Acceso Relacion de Avisos Declaracion de Nacimiento Cambio de Clave Direcciones

4. CONTENIDO Cómo Añadir Contactos a tu Webmail

Introducción XO Introducción Generalidades de la Interfaz Gestión de datos en la XO: Journal

Manual del Cotizador. Línea de Atención Comercial Estamos para ayudarte

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

Manual para el uso del Correo Electrónico Institucional Via Webmail

Presentación y Planificación del Proyecto: Administración de Calzado

Diseño, Distribución y Análisis de Encuestas

INGENIERÍA DEL SOFTWARE I. Univ. Cantabria Fac. de Ciencias. Especificación de Requisitos. Práctica 2

Manual básico de Outlook Express

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Ayuda básica relativa al interfaz web

hcdc/ccdt Guía para Asesores y Tutores

ICARO MANUAL DE LA EMPRESA

CAPITULO 3 DISEÑO. El diseño del software es el proceso que permite traducir los requisitos

Programación Avanzada Ingeniería Civil en Computación

Para crear una actividad, pulsamos sobre la pestaña actividades

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Person IP CRM Manual MOBILE

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

Transcripción:

Programación Orientada a Objetos Clase # 6 Reutilización del código Jueves, 2 de Mayo de 2002 Iván Bernal, Ph.D. Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec Agenda Prueba de medio bimestre. Reutilización de la interfaz de una clase. Paso de argumentos en funciones: por valor o por referencia. Copyright @2002, I. Bernal Iván Bernal, Ph.D. 2 Reutilización de la interfaz (1) Crear una clase y luego tener que crear una nueva repitiendo muchas cosas cuando se requiere algo similar, pero con algunas diferencias, NO es una buena idea. Es mejor tomar una clase, clonarla y hacer modificaciones o adicionar cosas al clon. Herencia (inheritance). Reutilización de la interfaz (2) Con herencia, si la clase original se cambia, la clase modificada (clon)) también refleja los cambios. La clase original se conoce con los nombres: Clase base (base Superclase (super Clase padre o madre (parent El clon se conoce como: Clase derivada (derived Clase heredada (inherited Clase hija (child Iván Bernal, Ph.D. 3 Iván Bernal, Ph.D. 4 1

Reutilización de la interfaz (3) La flecha del diagrama UML apunta desde la clase derivada hacia la clase base. Reutilización de la interfaz (4) Con el concepto de herencia, se considera la similitud entre tipos: Dos tipos podrían tener características y funcionalidad comunes. Un tipo podría tener más características que el otro. Un tipo podría manejar un mayor número de funciones, o al menos implementarla de manera diferente. Un tipo base tiene las características y funcionalidad que serán compartidas por todos los tipos que se deriven de él. Iván Bernal, Ph.D. 5 Iván Bernal, Ph.D. 6 Reutilización de la interfaz (5) Se puede definir un tipo base para representar las ideas principales de un grupo de objetos. Del tipo base se pueden derivar otros tipos para representar particularidades de ciertos objetos. Reutilización de la interfaz (6) Un ejemplo típico tomado de un sistema CAD (computer-aided design): Se tiene un tipo base shape (forma geométrica). Cada shape tiene tamaño, color, posición Cada shape puede ser: Dibujada (drawn). Borrada (erased). Movida (moved). Pintada (colored). Iván Bernal, Ph.D. 7 Iván Bernal, Ph.D. 8 2

Reutilización de la interfaz (7) Usando shape como tipo base se pueden derivar tipos específicos: Círculo (circle). Cuadrado (square). Triángulo (triangle). Otros Los tipos específicos pueden tener nuevas características (variables miembro) y nuevas funcionalidad (funciones miembro), o algunas funciones serán implementadas de forma diferente. Todos pueden tener una función para calcular el área, pero los detalles de cada uno serán diferentes. Reutilización de la interfaz (8) Iván Bernal, Ph.D. 9 Iván Bernal, Ph.D. 10 Reutilización de la interfaz (9) Cuando se hereda de un tipo existente, se crea un nuevo tipo: Se tiene a disposición todos los miembros del tipo existente (excepto los private). Se duplica el interfaz de la clase base. Todos los mensajes que se pueden enviar a objetos de la clase base, se pueden enviar a objetos del nuevo tipo, clase derivada. El tipo de la clase derivada es el mismo que el de la clase base. Un círculo es una forma geométrica. Existe una equivalencia de tipos gracias a herencia Reutilización de la interfaz (10) En cuanto a la implementación: Si solo se hereda de un clase base y no se hace nada más, se tiene a disposición la implementación de las funciones del interfaz de la clase base. Los objetos de la clase derivada tienen el mismo tipo y el mismo o comportamiento. Esto no es tan interesante, los cambios y adiciones que se permiten es lo interesante. Iván Bernal, Ph.D. 11 Iván Bernal, Ph.D. 12 3

Reutilización de la interfaz (11) Añadir nuevas funciones a la clase derivada, que no son parte del interfaz de la clase base. Se añaden funciones cuando la clase base no provee lo que se requiere. Al diseñar clases, se debe considerar la posibilidad de que la clase base sea la que necesita que mas funciones se añadan a su interfaz: Puede ser un proceso iterativo. Iván Bernal, Ph.D. 13 Reutilización de la interfaz (12) Cambiar la implementación (comportamiento) de una función que pertenece al interfaz de la clase base. Esto se conoce como: Sobrescribir, redefinir o sobrecargar una función (overriding ). Se incluye en la interfaz de la clase derivada la función, se tendrá una nueva implementación. Iván Bernal, Ph.D. 14 Paso de argumentos por valor y referencia (1) Paso de argumentos por valor y referencia (2) Un proceso en UNIX tiene dividida el espacio de memoria en tres segmentos: Segmento de texto: el código del programa. No es que están las instrucciones como las escribimos en C. Segmento de datos: espacio para las variables. Segmento del stack. Iván Bernal, Ph.D. 15 Iván Bernal, Ph.D. 16 4

Paso de argumentos por valor y referencia (3) El segmento de datos crece hacia arriba y el stackcrece crece hacia abajo. Entre los dos anteriores existe un espacio (gap). El segmento del stackcrece crece automáticamente en este espacio, de acuerdo a las necesidades. El segmento de datos no crece a menos que se use una llamada explicita al Sistema Operativo. Iván Bernal, Ph.D. 17 5