Programación Orientada a Objetos



Documentos relacionados
Programación Orientada a Objetos

Programación Orientada a Objetos

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

2.2.- Paradigmas de la POO

Curso de Doctorado: Tecnologías de Objetos

2.1. Introducción al lenguaje Java

Programación Orientada a Objetos en Java

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Métricas. Valentin Laime. Calidad de Software

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

Pilares de la Orientación a Objetos

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

Notación UML para modelado Orientado a Objetos

Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO

Capítulo 3 Análisis Orientado a Objetos

Curso de Python Inicial

Soporte lógico de computadoras

Universidad de Cantabria

Algoritmos y programas

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Principios Básicos de Orientación a Objetos. Orientación a Objetos

Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS

Java Inicial (20 horas)

Curso de Java POO: Programación orientada a objetos

Capítulo 6. Introducción a la POO

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

INFORMÁTICA II. Clase 1: Presentación- Introducción. Semestre 2012/1

Introducción a la programación orientada a objetos

DIAGRAMA DE CLASES EN UML

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos.

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación

Aprende a programar en Java

Asignaturas antecedentes y subsecuentes Programación III, Programación V

Inteligencia Artificial II. Razonamiento con ontologías

Capítulo 10. Subtipos y Herencia.

implantación Fig. 1. Ciclo de vida tradicional

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Modelado arquitectónico con UML

Patrones de Diseño Orientados a Objetos 2 Parte

Tema: Sobrecarga de Operadores.

PROGRAMACIÓN ORIENTADA A OBJETOS

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado

Diseño orientado a los objetos

Enterprise JavaBeans

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



Modelado Estático Avanzado (Generalizaciones) Diseño de Software Avanzado Departamento de Informática

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Introducción a la Informática

Figura 4.1 Clasificación de los lenguajes de bases de datos

EXTENSIÓN DE UML PARA APLICACIONES WEB

Introducción a la Programación Orientada a Objetos

Ingeniería del Software Arquitectura Física en 3 niveles

Base de datos relacional

Arquitectura Cliente/Servidor

Introducción a la Computación

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)

TEMA 14. Modelos de representación de diagramas

TEMA 7: DIAGRAMAS EN UML

PROGRAMACION ORIENTADA A OBJETOS CON PHP

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno

MS_10266 Programming in C# with Microsoft Visual Studio 2010

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

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS

SUPLEMENTO EUROPASS AL TÍTULO DE TÉCNICO SUPERIOR DE ARTES PLÁSTICAS Y DISEÑO

Índice.

Estandar FIPA Foundation for Intelligent Physical Agents

Sistema de Interconexión de Registros (SIR)

Fundamentos de Programación Orientada a Objetos ( POO ) - Parte 3 Desarrollo de Software

Fundamentos de la Programación

Programación orientada a objetos

Módulo 2. Inicio con Java

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia

METODOS NUMERICOS CATEDRA 0 2. Ingeniería Civil ING.CRISTIANCASTROP. Facultad de Ingeniería de Minas, Geología y Civil

INDICE Uso de la composición (I). Preservación de la ocultación Utilización de miembros heredados (I). Atributos...

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

SIELOCAL. Sistema de Información Económico Local SISTEMA DE GESTION DE MULTAS

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

Patrones de Diseño. Ezequiel Postan. 1 Libro e índice. 2 Introducción

Programación en Java. Programación en OO

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

PLAN DE ACCIÓN GOBIERNO EN LÍNEA 2013

Requerimientos principales de un sistema operativo

Proyecto Ley Marco que crea la Historia Clínica Electrónica y su Registro

7.1 Java vs.net, la lucha se acrecienta

Transcripción:

Programación Orientada a Objetos E.T.S.I. Telecomunicación Universidad de Málaga http://www.lcc.uma.es/

Contenido Introducción histórica Conceptos básicos de la Programación O. O. Conceptos avanzados de la Programación O.O. Programación Orientada a Objetos 2

Introducción Histórica Programación Orientada a Objetos 3

A B S T R A C C I Ó N O P E R A C I O N A L Evolución de los Lenguajes de Instrucciones Máquina Expresiones, Funciones Estr. Control, Subprogramas Ocultamiento Información, Interfaces Programación Lenguajes Máquina / Ensamblador FORTRAN PASCAL MODULA-2 ADA Direcciones de Memoria, Registros Variables de Tipos Predef., Arrays Definición de Tipos, Punteros Tipos Abstractos de Datos A B S T R A C C I Ó N D E D A T O S Métodos, Mensajes Lenguajes Orientados a Objetos Clases, Objetos Programación Orientada a Objetos 4

Evolución de los Lenguajes Orientados a Objetos Simula (Nygaard, 60s) Smalltalk (Xerox PARC, 70s) Eiffel (Meyer, 80s) C++ (Stroustrup, 80s) Java (Sun Microsystems, 90s) C# (Microsoft, 00s) Programación Orientada a Objetos 5

Conceptos Básicos de la Programación O.O. Programación Orientada a Objetos 6

Clases y Objetos CLASE = SUBPROGRAMAS + VARIABLES Criterio de Modularización Estado + Comportamiento Entidad estática Clase Tipo OBJETO = Instancia de una CLASE Entidad dinámica Cada objeto tiene su propio estado Objetos de una misma clase comparten un comportamiento Objeto Variable Programación Orientada a Objetos 7

VEHÍCULO ANIMAL PUNTO FIGURA (1,3) (2,2) (2,1) (5,2.5) Programación Orientada a Objetos 8

Qué es una Clase? Caja negra que oculta en su implementación: Atributos: variables que codifican el estado de una instancia de la clase (objeto) Métodos: subprogramas que describen el comportamiento de un objeto de la clase Una clase es semejante a un tipo: Atributos: estructura de datos Métodos: operaciones sobre el tipo Programación Orientada a Objetos 9

Instancia de una clase: Qué es un Objeto? Cada objeto de una clase tiene su propia copia de los atributos (estado propio) Todos los objetos de una clase comparten los mismos métodos (comportamiento común) Programación Orientada a Objetos 10

Implementador vs. Usuario Las clases son cajas negras con Interfaz (uso) Implementación (funcionamiento) El implementador se encarga de definir el interfaz y de desarrollar la implementación El usuario empleará los objetos de la clase exclusivamente a través del interfaz Programación Orientada a Objetos 11

Un ejemplo: la clase Punto Clase R x,y; Punto trasladar(a,b) distancia(pto) Atributos = Estado Propio Métodos = Comportamiento Común Objetos (Punto) x= 2 y= 3 (Punto) x= 5 y= 7 (Punto) x= -1 y= 4 Programación Orientada a Objetos 12

Definiendo la clase Punto Comportamiento INTERFAZ CLASE Punto MÉTODOS cambiar_x(e R nx); cambiar_y(e R ny); trasladar(e R dx,dy); R distancia(e Punto p); FIN Punto; Programación Orientada a Objetos 13

Definición de Métodos El objeto afectado no aparece como argumento del método: trasladar(e R dx,dy); En realidad, el objeto afectado es un argumento de entrada/salida implícito llamado éste: ALGORITMO trasladar(es Punto éste,e R dx,dy); Programación Orientada a Objetos 14

Implementando la clase Punto (I) Estado IMPLEMENTACIÓN CLASE Punto ATRIBUTOS R x,y; acceso al argumento implícito MÉTODOS cambiar_x(e R nx) INICIO x = nx; // x == éste.x FIN cambiar_y(e R ny) INICIO y = ny; // y == éste.y FIN Programación Orientada a Objetos 15

Implementando la clase Punto (II) trasladar(e R dx,dy) INICIO x = x+dx; y = y+dy; FIN R distancia(e Punto p) INICIO DEVOLVER sqrt(pow(x-p.x,2) + pow(y-p.y,2)) FIN FIN Punto; acceso total a otros objetos de la misma clase Programación Orientada a Objetos 16

Usando la clase Punto El usuario declara objetos como cualquier otra variable: Punto p1, p2; Como usuario, no se puede acceder a la parte privada de los objetos: p1.x = 2; Error El usuario sólo puede manipular un Punto invocando a los métodos del interfaz de la clase Punto (comportamiento) Programación Orientada a Objetos 17

Invocación de Métodos Los métodos se invocan mediante paso de mensajes: P.trasladar(4,-1) = trasladar(p,4,-1) El objeto P es el receptor del mensaje: trasladar(4,-1) (Punto) x=1 5 y=3 2 P Programación Orientada a Objetos 18

Relación de Composición la composición permite expresar una relación de tipo está compuesto por Por ejemplo, un segmento está compuesto por dos puntos: origen y extremo R x,y; Punto trasladar(a,b) distancia(pto) Segmento Punto Orig, Ext; trasladar(a,b) longitud() Programación Orientada a Objetos 19

Implementando la Composición (I) INTERFAZ CLASE Segmento MÉTODOS trasladar(e R dx,dy); R longitud(); FIN Segmento; Programación Orientada a Objetos 20

Implementando la Composición (II) IMPLEMENTACIÓN CLASE Segmento ATRIBUTOS Punto Orig, Dest; MÉTODOS trasladar(e R dx,dy) INICIO Orig.trasladar(dx,dy); Dest.trasladar(dx,dy); FIN R longitud(); INICIO DEVOLVER Orig.distancia(Dest); FIN FIN Segmento; Programación Orientada a Objetos 21

Conceptos Avanzados de la Programación O.O. Programación Orientada a Objetos 22

Herencia Posibilidad de reutilizar código Algo más que: incluir ficheros, o importar módulos Distintos tipos de herencia: simple / múltiple estricta selectiva Pentágono de implementación/de interfaz Polígono FiguraCerrada Cuadrilátero Elipse Círculo Rectángulo Rombo Programación Orientada a Objetos 23

Herencia Padres / Ascendientes Una clase heredera proporciona los Punto atributos y métodos de la clase heredada, y puede añadir otros nuevos. Partícula La clase heredera puede modificar el comportamiento heredado (por ejemplo, redefiniendo algún método heredado). La herencia es transitiva. Los objetos de una clase que hereda de otra pueden verse como objetos de esta Hijos / Descendientes última. Programación Orientada a Objetos 24

Herencia Múltiple Existen lenguajes con herencia múltiple, lo que permite que una clase reutilice la funcionalidad ofrecida por varias clases. Pensionista TrabajadorActivo MedioPensionista Programación Orientada a Objetos 25

Herencia y Redefinición En la herencia las clases herederas pueden heredar un método o servicio, y luego redefinirlo, modificando su implementación. Polígono R perímetro( ); Suma de distancias entre puntos consecutivos Resultado = 4*lado Cuadrado R lado; R perimetro( ); Programación Orientada a Objetos 26

Polimorfismo sobre los datos Una variable puede referirse a objetos de clases distintas de la que se ha declarado. La restricción dada por la herencia, permite construir estructuras con elementos de naturaleza distinta, pero con un comportamiento común: Programación Orientada a Objetos 27