Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

31
Introducción a la Orientación a Objetos Lenin Herrera Sesión 1

Transcript of Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Page 1: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Introducción a la Orientación a Objetos

Lenin HerreraSesión 1

Page 2: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Historia

• Simula 67. Universidad de Noruega.• Smalltalk. Xerox 1970.• C++ . ATT Lab Bell 1980.• Delphi. Borland 1990.• PHP. Rasmus Lerdorf 2000.

Page 3: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Paradigmas de Programación

• Existen de distintas clases y cada uno con su propio objetivo.– Estructurados (C, Pascal, Basic, etc.)– Funcionales (CAML)– Declarativos (Prolog)– Imperativas(Basic)– Orientados a Objetos (C#, VB.NET, Smalltalk, Java)– Orientados a Aspectos– Híbridos (Lisp, Visual Basic)

Page 4: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Programación Estructurada• A finales de los años 1960 surgió una nueva forma de

programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior.

• El teorema de programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:• Secuencia • Instrucción condicional. • Iteración (bucle de instrucciones) con condición al

principio.

Page 5: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Programación Funcional

• Es un paradigma de programación declarativo basado en la utilización de funciones matemáticas

• El objetivo es conseguir lenguajes expresivos y elegantes (matemáticamente hablando), en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de estado del cómputo.

Page 6: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Programación Declarativa

• Este paradigma está basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución.

• La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla. No existen asignaciones destructivas.

Page 7: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Programación Imperativa

• Es el paradigma contrario a el declarativa, este describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

Page 8: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Programación orientada a eventos

• Este paradigma es enfocada a los eventos, en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen.

Page 9: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

¿ Porque Objetos?

• Todo el mundo esta compuesto de entidades que se relacionan e interactúan entre si;

• Ej.– Un carro con su conductor.– Una persona con su computadora.

Page 10: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

¿Qué es un Objeto?

• Informalmente, un objeto representa una entidad del mundo real

• Entidades Físicas • (Ej.:Auto, Computadora, Cliente)

• Entidades Conceptuales – (Ej.: Transacción Bancaria)

• Entidades de Software – (Ej.: Interfaz Gráfica)

Page 11: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

¿Qué es un Objeto?

• Definición Formal (Rumbaugh):– “Un objeto es un concepto, abstracción o cosa con

un significado y límites claros en el problema en cuestión”

• Un objeto posee (Booch):– Estado– Comportamiento– Identidad

Page 12: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Un objeto posee Estado• Lo que el objeto sabe• El estado de un objeto es una de las posibles condiciones en que el objeto

puede existir• El estado normalmente cambia con el transcurso del tiempo• El estado de un objeto es implementado por un conjunto de propiedades

(atributos), además de las relaciones que puede tener con otros objetos

AtributosEdad:32

Peso:145 Lbs.Altura:5’ 5’’

Titulo: Doctora

Dra. X

Page 14: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Un objeto posee Identidad• Cada objeto tiene una identidad única, incluso si su estado es idéntico al

de otro objeto.• Cada Objeto es único en el mundo por mas que haya otro objeto con

iguales atributos.

Page 15: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

¿Qué es una Clase?• Una clase es una descripción de un grupo de objetos

con: – Propiedades en común (atributos)– Comportamiento similar (operaciones)– La misma forma de relacionarse con otros objetos

(relaciones)– Una semántica en común (significan lo mismo)

• Una clase es una abstracción que:– Enfatiza las características relevantes– Suprime otras características (simplificación)

• Un objeto es una instancia de una clase

Page 16: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Objetos y Clases• Una clase es una definición abstracta de un objeto

– Define la estructura y el comportamiento compartidos por los objetos– Sirve como modelo para la creación de objetos

• Los objetos pueden ser agrupados en clases

Page 17: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Ejemplo de una Clase• Clase: Curso• Estado (Atributos)

– Nombre– Ubicación– Días Ofrecidos– Horario de Inicio– Horario de Término

• Comportamiento (Métodos)– Agregar un Alumno– Borrar un Alumno– Entregar un Listado del Curso– Determinar si está Completo

Page 18: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Herencia

• Para el caso de la clase D a la clase C, la herencia es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D.

• Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C.

Page 19: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Herencia

• Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos.

• Esto es así para mantener hegemónico el ideal de OOP.

Page 20: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Método

• Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Page 21: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Eventos

• Un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.

Page 22: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Mensajes

• Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Page 23: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Atributo o Propiedad

• Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Page 24: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Características de POO

• Abstracción.• Encapsulamiento.• Ocultación.• Polimorfismo.• Herencia.• Recolección de Basura.

Page 25: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Abstracción• Denota las características esenciales de un

objeto, donde se capturan sus comportamientos. • Cada objeto en el sistema sirve como modelo de

un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.

Page 26: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Encapsulamiento

• Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesion de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

Page 27: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Ocultamiento

• Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase.

• El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado.

Page 28: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Ocultamiento

• Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

Page 29: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Polimorfismo• Comportamientos diferentes, asociados a objetos

distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.

• O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado.

Page 30: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Recoleccion de Basura

• La Recolección de basura o Garbage Collection es la técnica por la cual el ambiente de Objetos se encarga de destruir automáticamente, y por tanto desasignar de la memoria, los Objetos que hayan quedado sin ninguna referencia a ellos.

• Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo Objeto y la liberará cuando nadie lo esté usando.

Page 31: Introducción a la Orientación a Objetos Lenin Herrera Sesión 1.

Bibliografía

• http://www.tic.udc.es/~fbellas/teaching/ioo/IOO.pdf

• www.robocode-argentina.com.ar/descargas/poo.ppt

• http://www.cs.buap.mx/~mmartin/introprog/Cap4.pdf

• http://www.monografias.com/trabajos14/paradigma/paradigma.shtml