DOCENCIA EN INFORMATICA John Cando 23/11/214
Programaci贸n Orientada a Objetos John R. Cando
DOCENCIA EN INFORMATICA John Cando 23/11/214
UNIVERSIDAD TECNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
Carrera de Docencia en Informática
PROGRAMACION ORIENTADO A OBJETOS Ing. Andrés Morales
John Cando Cuarto Semestre “A”
Noviembre 23 del 2014
DOCENCIA EN INFORMATICA John Cando 23/11/214
INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje orientado a objetos. La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje, porque “filosofía” sólo hay una y lenguajes muchos. En este documento veremos brevemente los conceptos básicos de la programación orientada a objetos desde un punto de vista global, sin particularizar para ningún lenguaje de programación específico.
DOCENCIA EN INFORMATICA John Cando 23/11/214
Introducción al Diseño O. O.
Crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software.
El DOO da como resultado un diseño el cual interconexiona los objetos de datos , y las operaciones de procesamiento
Este encapsulamiento es el paradigma fundamental de la orientación por objetos.
DOCENCIA EN INFORMATICA John Cando 23/11/214
MODELO DE UNA TAREA TÍPICA DE PROGRAMACIÓN E sp a cio d e l mund o re a l Resultado Algorí tmo del mundo real
Objetos reales y actividades
Problema Modelo
Objeto reales (cambio de estado)
E sp a cio d e l p ro g ra ma Representar mediante abstracción Programador
Usuario Interpreta
Programa
Objetos abstractos y operaciones en lenguaje de programación
Algorí tmo
Datos e información Resultado
DOCENCIA EN INFORMATICA John Cando 23/11/214
Diseño Orientado por objeto Se debe a su habilidad para construir basándose en tres conceptos importantes del diseño del software:
Abstracción.
Ocultamiento de la información. Modularidad.
Qué es la orientación por objeto Significa que organizaremos el software como una colección de objetos discretos que incorporan tanto estructuras de datos como procedimientos. Esto contrasta con la programación convencional, en la cual las estructuras de datos y el comportamiento están solo aproximadamente conectados.
Qué es el desarrollo Orientado por Objetos Es una nueva forma de pensar acerca del software basado sobre abstracciones que existen en el mundo real.
DOCENCIA EN INFORMATICA John Cando 23/11/214
Dato 2
Dato 1
Procedimiento 2
Dato 4
Procedimiento 1
Dato 3
Procedimiento 3
Fig. 2 Sistema convencional
Diferencia entre la
M1
Programaci贸n
INVOCA 4
M4
Convencional
DAT O 2 M2 M3
M1 M4
INVOCA 1
DAT O 1 M2 M3 M1 M4
INVOCA 3
DAT O 3 M2 M3
Fig.3 Sistema Orientado por objeto
DOCENCIA EN INFORMATICA John Cando 23/11/214
Constructos básicos de la programación POO
Objeto
Identidad del objeto
Clase
Métodos
Polimorfismo
Objeto: Un “paquete” de software independiente formado por un conjunto de datos junto con los procedimientos que operan sobre estos datos. Un objeto puede ser real o abstracto.
• Identidad del objeto Cada objeto tiene su propia identidad que lo distingue de los demás objetos. En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
Herencia
Encadenamiento dinámico
DOCENCIA EN INFORMATICA John Cando 23/11/214
• Clase Una clase es la abstracción que describe propiedades importantes para una aplicación. Esta clase de estructura que abarca tantas propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizado para modelar tanto entidades objetos como relaciones entre los objetos. Ejemplo:
• Métodos
Métodos Una operación es una función o transformación que puede ser aplicada sobre los objetos en una clase
Cada operación tiene un objeto destino con un argumento implícito. El comportamiento de la operación depende de la clase destino.
DOCENCIA EN INFORMATICA John Cando 23/11/214
Polimorfismo Significa que un nombre se puede utilizar para especificar una clase genérica de acciones. Por ejemplo, la operación "mover" ejemplo puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas ajedrez.
U nive rsa l
Pa ra mé trico Inclusión
Polimorfismo Ad H oc
Ove rloa ding Coe rción
POLIMORFISMO Paramétrico
Se obtiene cuando una función trabaja uniformemente sobre un rango de tipos.
De Inclusión
Por Overloading
Por Coerción
El contexto se utiliza para decidir cuál función se debería ejecutar para una invocación particular del nombre.
En este tipo de polimorfismo un objeto puede pertenecer a clases diferentes que no necesariamente son disjuntas.
Es una operación semántica que convierte argumentos a los tipos esperado por una función, en una situación que de otra forma resultaría en un tipo de error.
DOCENCIA EN INFORMATICA John Cando 23/11/214
• Herencia Elementos capaces de ser heredados
Consiste en el compartir atributos y métodos entre clases basándose en una relación jerárquica
HERENCIA
EJEMPLO:
Nombre Edad Dirección Sexo
Persona
Cargo Empleado
Estudiante Denominación
Carrera
Profesión Director Secretaría
Año de experiencia
Dependencia
Dependencia Idiomas
• Encadenamiento dinámico
Simplemente, la declaración encadenamiento dinámico significa que el sistema encadenará
una rutina a un selector para un método particular que está implantado sobre un objeto clase.
En efecto, no se tendrían sistemas orientados por objeto sin esa poderosa capacidad.
Herencia Estructural
Herencia de Comportamiento
DOCENCIA EN INFORMATICA John Cando 23/11/214
Programación Orientada a Objetos utilizando como lenguaje el PHP.
CARATERÍSTICAS
Lineal
Es cuando desarrollamos todo el código disponiendo instrucciones PHP alternando con el HTML de la página.
Estructurada
Es cuando planteamos funciones que agrupan actividades a desarrollar
Orientada a Objetos
Es cuando planteamos clases y definimos objetos de las mismas
Declaración de una clase y creación de un objeto.
Se basa en la programación de clases
define los atributos
métodos comunes
Al crear un objeto de una clase, se dice que
a los objetos de ese tipo
es un molde
es una plantilla (molde), que define atributos métodos (lo que conocemos como funciones).
se crea una instancia de la clase o un objeto propiamente dicho.
DOCENCIA EN INFORMATICA John Cando 23/11/214
Ejemplo de Clase Definir un círculo
Conclusión: La programación orientada a objetos permite la optimización del código generado gracias a que mediante técnicas de herencia, atributos estáticos entre otros permiten, que el código sea genérico de manera que sea reutilizable. Mediante la técnica aprendida en el presente curso podemos establecer una solución primitiva de un problema real, tan solo con relacionarlo con objetos lógicos que serán usados para el desarrollo del software. Podemos dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de programación, a personas que deseen una explicación rápida y sencilla de lo que es la programación orientada a objetos.
DOCENCIA EN INFORMATICA John Cando 23/11/214 Tenemos los conocimientos necesarios como para enfrentar un problema real y desarrollo en otro lenguaje de programaciรณn, pues concebimos la idea de que el lenguaje C es la base de la programaciรณn. Al trabajar con la programaciรณn orientada a objetos sea esta desarrollada en otras plataformas de programaciรณn o en lenguaje C, sabemos las formas de lograr un mejor rendimiento del equipo a controlar y aplicar soluciones sencillas, de manera que sea fรกcilmente digeribles para el usuario y/o destinatario del trabajo final.
DOCENCIA EN INFORMATICA John Cando 23/11/214
LINKOGRAFÍA http://www.sc.ehu.es/sbweb/fisica/cursoJava/fu ndamentos/clases1/clases.htm http://www.cc.uah.es/jlcastillo/POO/media/POO Cap3-1.pdf http://www.killerphp.com/tutorials/objectorientedphp/downloads/tutorial_oop_en_php_para_killer php.com.pdf http://www.nebrija.es/~abustind/Informatica/Met odologiaII/Introduccion.pdf