Programación Orientada a Objetos

Documentos relacionados
Programación Orientada a Objetos

PROGRAMACION ORIENTADA A OBJETOS EN C++

Introducción a la Orientación a Objetos

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

La Herencia: Teoría (1)

Introducción a la programación orientada a objetos

Diagramas de interacción

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

CLA. Diagramas de clases en Métrica V3

Conceptos de Programación Orientada a Objetos

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos

JAVA 7 Los fundamentos del lenguaje Java

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

Modulo 11. Clases y Objetos en Java

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Programación Orientada a Objetos (POO)

Principios de Computadoras II

2.1. Introducción al lenguaje Java

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

Capítulo 16. Diagrama de Clases UML

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

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

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Fundamentos de programación y Bases de Datos

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

NOMENCLATURA DE CUADRILÁTEROS Y ÁNGULOS

Procesadores de lenguaje Tema 6 La tabla de símbolos

Tema 8 Gestión de la memoria en tiempo de ejecución.

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

Algoritmos y programas. Algoritmos y Estructuras de Datos I

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Trabajar los cuadriláteros con Dash

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

PLAN DE MATERIAS ACADEMUSOFT 3.2

1. Computadores y programación

Geometría 2D: Preguntas Capítulo Relaciones Geométricas, Perímetro y Circunferencia

1

2.2 Nombres, Ligado y Ámbito

Las clases como tipos de datos definidos por el usuario

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

Aprender a desarrollar con JavaScript

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Curso de Java POO: Programación orientada a objetos

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

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Análisis y Diseño de Sistemas

FORMACIÓN Principios de la programación orientada a objetos

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Curso de Doctorado: Tecnologías de Objetos

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Capítulo 3 Análisis Orientado a Objetos

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

MATEMÁTICAS 3º ESO PENDIENTES HOJA 1 GEOMETRÍA PLANA. 1.- Calcular el área y el perímetro de los siguientes polígonos:

FUNCIONAMIENTO DEL ORDENADOR

TEMA 10: FORMAS Y FIGURAS PLANAS. Primer Curso de Educación Secundaria Obligatoria. I.e.s. Fuentesaúco.

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Click para ir al sitio web:

Lenguaje de Programación

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

CARRERA: LICENCIATURA EN INFORMATICA

UML: INTRODUCCIÓN, ORIENTACIÓN a Objetos

FIGURAS, ÁREAS Y PERÍMETROS

INFORMÁTICA Y COMUNICACIONES

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

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

Cristian Blanco

Sistemas Distribuidos: Migración de Procesos

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su

llamada a la función Val(num) cambiosigno(n) redondeo(num,3)

Tema X: Introducción al Paradigma Orientado. a Objetos. Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión.

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

PROGRAMACIÓN UNIDADES

BLOQUE I: HOJA DE CÁLCULO

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

UNIDAD 2: ELEMENTOS GEOMÉTRICOS

Abajo está una mezcla de expresiones racionales. Haga la operación indicada y simplifique su solución, si puede.

TEMA I PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN N ORIENTADA A OBJETOS OBJETOS (I) OBJETOS (II)

Algoritmos y programas

FIGURAS PLANAS. Es una figura plana delimitada por una línea poligonal cerrada.

DEPARTAMENTO DE MATEMATICAS

Java Inicial (20 horas)

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

Tema 6. Gestión dinámica de memoria

Transcripción:

Programación Orientada a Objetos E.T.S.I. Informática 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

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 11

Definiendo la clase Punto Comportamiento INTERFAZ CLASE Punto MÉTODOS Punto(); // Constructores Punto(E R x, E R y); CambiarX(E R nx); CambiarY(E R ny); Trasladar(E R dx,dy); R Distancia(E Punto p); FIN Punto; Programación Orientada a Objetos 12

Definición de Métodos El objeto afectado no aparece como argumento del método: 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 13

Implementando la clase Punto (I) Estado IMPLEMENTACIÓN CLASE Punto ATRIBUTOS R x,y; acceso al objeto receptor MÉTODOS Punto() INICIO x = 0 // x == éste.x y = 0 FIN Punto Punto(E R x, E R y) INICIO este.x = x// y == éste.y este.y = y; FIN Punto Programación Orientada a Objetos 14

Implementando la clase Punto (I) acceso al objeto receptor MÉTODOS CambiarX(E R nx) INICIO x = nx; // x == éste.x FIN CambiarX CambiarY(E R ny) INICIO y = ny; // y == éste.y FIN CambiarY Programación Orientada a Objetos 15

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

Usando la clase Punto Los objetos se declaran como cualquier otra variable. En la declaracion se esta llamando implicitamente al constructor por defecto Punto p1, p2; // Se llama a Punto() Si se quiere llamar a otro constructor se pasan los parámetros que correspondan //Se llama al constructor Punto(x,y) Punto p3(3,4); Programación Orientada a Objetos 17

Usando la clase Punto 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 a invocando a los métodos del interfaz de la clase Punto (comportamiento) Programación Orientada a Objetos 18

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 19

Relación de Composición la composición permite expresar a 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 20

Implementando la Composición (I) INTERFAZ CLASE Segmento MÉTODOS Segmento(E Punto p1, E Punto p2) Trasladar(E R dx,dy); R Longitud(); FIN Segmento; Programación Orientada a Objetos 21

Implementando la Composición (II) IMPLEMENTACIÓN CLASE Segmento ATRIBUTOS Punto orig, ext; MÉTODOS Trasladar(E R dx,dy) INICIO orig.trasladar(dx,dy); ext.trasladar(dx,dy); FIN Trasladar R Longitud(); INICIO DEVOLVER orig.distancia(ext); FIN Longitud FIN Segmento; Programación Orientada a Objetos 22

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

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

Herencia adres / 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 ijos / Descendientes última. Programación Orientada a Objetos 25

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 26

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 27

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 28