Programación orientada a objetos

Documentos relacionados
Encapsulamiento, polimorfismo, abstracción y herencia

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.

Introducción a OOP. Programación Orientada a Objeto

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

Tema 1 Introducción al paradigma de programación orientado a objetos

Programación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez

A3F. Objetos (uso) Carlos Fontela

Informática I para Bachillerato

Programación Orientada a Objetos

Programación Orientada a Objetos

Programación. Orientada a Objetos. Prof. Angela Di Serio. Universidad Simón Bolívar Especialización en Telemática

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación

PROGRAMACIÓN ORIENTADA A OBJETOS

Programación Orientada a Objetos

Programación orientada a objetos

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

UML: Diagrama de Clases

Programación Orientada a Objetos

Tipo de Datos Abstractos y Programación Orientada a Objetos

Programación Orientada a Objetos

Introducción código transversal

PROGRAMACIÓN ORIETADA A OBJETOS

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

APLICACIONES MOVILES NATIVAS. Sesión 5: Objetos, mensajes y clases. Abstracción, encapsulamiento, herencia y polimorfismo

Evolución de la Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

acceso Implementación de conceptos P.O.O. en Java Orientada a Objetos 2. Modificadores de en Java Temario

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

TALLER FINAL DE ALGORITMO Y PROGRAMACION ORIENTADA A OBJETOS I (POOI) PRESENTADO POR: GUSTAVO ENRRIQUE SINNING FUENTES. VIRTOR FABIAN RIZO.

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

Introducción a la Programación orientada a objetos con C++

Guía práctica de estudio 08: Polimorfismo

TEMA 1. Agenda. Introducción a la Programación Orientada a Objetos

TALLER FINAL DE ALGORITMO Y PROGRAMACIÓN ORIENTADA A OBJETOS I (POOI) PRESENTADO POR ENDRIS JUDITH CABALLERO CARO KEYLA JAKELINE JIMENEZ CUADROS

Programación Orientada a Objetos y Patrón MVC en PHP5. Pablo Ramirez A.

Paradigmas de Programación

Programación Orientada a Objetos

Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación.

Programación Orientada a Objetos. Conceptos Básicos

Introducción a la Programación en C

Ingeniería de Software. UML.

Lenguajes y paradigmas de programación

Ingeniería en Computación. Lenguaje de Programación Orientado a Objetos. Unidad de competencia I: Plataforma y lenguaje

PARTE 1: INTRODUCCIÓN DE LA PLANIFICACIÓN. Carrera y plan: Analista Programador Universitario Plan 2008.

Curso de Java POO: Programación orientada a objetos

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

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

Lenguajes de Programación

INDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas

Centro de Capacitación SAP ABAP

Introducción y conceptos de POO

Introducción a la Orientación a Objetos

Unidad IV. Programación Orientada a Objetos

PROGRAMA INSTRUCCIONAL

Tema 1 Introducción al paradigma de programación orientado a objetos

PLANIFICACIÓN PROGRAMACION II

Lenguajes de programación

Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos 01/02/2013 ING. PEDRO BELTRÁN CANESSA

Introducción a la Orientación a Objetos

Tema 1. Introducción a la Programación Orientada a Objetos

1. Conceptos básicos de POO 1

La Orientación a Objetos. Diseño de Software Avanzado Departamento de Informática

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

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

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

Programación Orientada a Objetos

Programación Orientada o Objetos

Estructura de Datos y de la Información. Tema 1: Introducción a los tipos abstractos de datos

Modelado Estructural F E B R E R O,

Transcripción:

Programación orientada a objetos Dra. Elisa Schaeffer elisa@yalma.fime.uanl.mx 12 de febrero de 2007 MECAS512 Estructura de Datos en C++

PROGRAMACIÓN ORIENTADA A OBJETOS un paradigma de programación programa = un conjunto de objetos que colaboran entre ellos la meta de la colaboración entre objetos es la realización de las tareas indicadas del programa

OBJETO estado + comportamiento + identidad Los objetos de un programa OO corresponden a los objetos del mundo real y/o a objetos internos del programa.

ESTADO DE UN OBJETO Los datos del objeto los atributos (es decir, las variables definidas) y sus valores asignadas en cada momento por lo general, la alteración de los valores de los atributos está controlado en POO pura: visibilidad de los datos está limitada al objeto mismo algo parecido al struct del lenguaje C en la mayoría de los lenguajes OOP, objetos pueden compartir datos

COMPORTAMIENTO DE UN OBJETO Los métodos del objeto: lo que puede hacer el objeto elementos del funcionamiento del programa subrutinas/funciones/procedimientos, es decir, algoritmos la cadena a acceso al objecto facilita la comunicación/interacción de los objetos pueden producir cambios en el estado del objeto el ejecución de un método se desencadena tras la recepción de un evento/mensaje/llamada (de otro objeto) en POO pura: no hay llamadas a subrutinas, solamente intercambio de mensajes

IDENTIDAD DE UN OBJECTO Cada objecto es único. aunque dos objetos tuvieron los mismos datos y los mismos métodos, son dos objetos distintos se puede diferenciar entre objetos y así guardar una referencia a un cierto objeto normalmente implementado con números de identificación corrientes asignados a la hora de creación del objeto

CONSEQUENCIAS Los programas OO suelen ser más fáciles de escribir, mantener y reutilizar que programas escritos en un lenguaje del paradigma procedural (como C, Pascal, Fortran o Basic). Un objeto se trata como una entidad indivisible.

INTERFACES GRÁFICOS La popularidad de POO de hoy es en gran parte un resultado de su uso fácil en la implementación de interfaces gráficas de usuario, en las cuales los diferentes elementos de la interfaz son objetos que interactuen por eventos. La POO también se conoce por el nombre programación dirigida por eventos.

CLASES DE OBJETOS Objetos que tienen definidos los mismos atributos y los mismos métodos pertenecen al misma clase de objetos. Al escribir una clase, el programador define un modelo de objeto que pueda manejar y guardar ciertos datos y que ofrece cierta funcionalidad (interna y/o externa) por el medio de los métodos. En una clase, se combina el almacenaje de los datos y su manejamiento hay que evitar casos en donde unos objetos sirven puramente como contenedoras de datos mientras otros cuentan con los métodos de procesarlos.

INSTANCIACIÓN Cada objecto es una instancia de una cierta clase: al crear el objeto se lee las definiciones de los atributos y los métodos de la clase y forma el objeto en la memoria de la computadora a partir de ellas. No confundirse entre los conceptos de objeto, clase y instancia!

EJEMPLOS? Intentamos identificar juntos las clases, los objetos y las instancias en diferentes contextos: las transacciones bancarias una tienda en-linea el control de una linea de producción un procesador de texto Otras ideas?

ÓRDEN DE APARENCIA DE LOS LENGUAJES 1. Simula 67 por Ole-Johan Dahl y Kristen Nygaard 2. Smalltalk desarrollado en Simula en Xerox PARC (creación y modificación de los objetos en marcha) 3. C++, una extensión del lenguaje C 4. Versiones POO de lenguajes como Ada, BASIC, Lisp y Pascal 5. Eiffel 6. Java (la mayoría de navegadores inclyuen su máquina virtual)

DISEÑO Y IMPLEMENTACIÓN EN POO los patrones de diseño (ingl. design patterns) el diseño por contrato (ingl. interface) los lenguajes de modelado (por ejemplo UML) implementaciones modulares realizadas en paralelo mantenimento, modificación, extensión y reuso más fácil

EVENTOS Además de los eventos creados por los objetos mismos (para comunicar con otros objetos del programa), típicamente existen eventos que permiten que el programa comunique con el sistema (o sea, el sistema operativo de la computadora). Varios objetos pueden escuchar para ciertos tipos de eventos para la recepción de los cuales se registraron con anticipación.

EVENTO VS. MENSAJE? La diferencia entre un evento y un mensaje es que un mensaje está dirigida a un cierto objeto. Los dos pueden contener atributos. Esto implica que son objectos también los eventos y mensajes mismos!

ENCAPSULAMIENTO La ocultación de la información los objetos están módulos aislados, protegidos contra su modificación no autoridaza por su clase, un objeto expone una interfaz para especificar las posibilidades de interacción típicamente los propios métodos internos del objeto son los únicos con acceso directo al estado del objecto control de visibilidad: acceso privado, acceso limitado o acceso público

ABSTRACCIÓN Los objetos son agentes abstractos con ciertas aptitudes que comuniquen entre ellos. No importa la manera de almacenaje de los datos ni la elección de los algoritmos dentro de los métodos. Ofrecen algunos servicios, conocidos por las definiciones de las interfaces públicas.

POLIMORFISMO Se puede incluir implementaciones alternativas al funcionamiento de tal manera que depende del objecto el método de cual fue llamado, cual implementación será ejecutada. Es decir, funciones distintas pueden compartir el mismo nombre. Por ejemplo, se puede llamar un cierto método a cada elemento de una coleción de objetos, y depende del objeto mismo qué efecto tendrá la invocación del método. Si la asignación del tipo del objeto referenciado ocurre durante la ejecución del programa, se habla de asignación tardía/dinámica. Otra opción es resolverlo ya en tiempo de compilación.

HERENCIA Relaciones entre las clases las clases se relacionan entre sí de una manera jerárquica los objetos contienen las propiedades y el comportamiento de todas las clases a las que pertenecen la definición de una clase puede extender comportamiento de las clases superiores y añadir atributos nuevos herencia múltiple: un objeto puede heredar de más de una clase facilita el polimorfismo y el encapsulamiento

CLASES ABSTRACTAS Y INTERFACES Muchos lenguages incorporan un concepto de clases abstractas y/o interfaces que no pueden ser instanciadas. Herencia de una clase abstracta o la declaración de conformancia con una interfaz son promesas de cumplir con cierta funcionalidad definida por la clase/interfaz misma. un mecanismo de polimorfismo

EJEMPLOS? Intentamos identificar juntos jerarquías de clases y interfaces posibles en diferentes contextos: las transacciones bancarias una tienda en-linea el control de una linea de producción un procesador de texto Otras ideas?