2014
CARRERA DE DOCENCIA EN INFORMATICA Stefy JESSENIA GARCÈS 23/11/2014
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
TABLA DE CONTENIDOS
TABLA DE CONTENIDOS ........................................................................................ 2
INTRODUCCIÓN .....................................................................................................3
DESARROLLO ........................................................................................................ 4
CONCLUSIÓN ....................................................................................................... 16
JESSENIA GARCÈS
BIBLIOGRAFÍA ...................................................................................................... 16
INTRODUCCIÓN La Programación Orientada a Objetos indica una forma de diseño y una metodología de desarrollo de software en un lenguaje de programación, ya que en realidad se puede aplicar el Diseño Orientado a Objetos a cualquier tipo de lenguaje de programación. El desarrollo de la OOP empieza a destacar durante la década de los 80 tomando en cuenta la programación estructurada, a la que engloba y dotando al programador de nuevos elementos para el análisis y desarrollo. El propósito de este trabajo es explicar el diseño orientado a objeto y no una explicación de su programación. La programación estructurada presta atención al conjunto de acciones que manipulan el flujo de datos (desde la situación inicial a la final), mientras que la programación orientada a objetos presta atención a la interrelación que existe entre los datos y las acciones a realizar con ellos. La OOP proporciona las siguientes ventajas sobre otros lenguajes de programación Uniformidad: la representación de los objetos lleva implica tanto el análisis como el diseño y la codificación de los mismos. Comprensión: los datos que componen los objetos, como los procedimientos que los manipulan, están agrupados en clases, que se corresponden con las estructuras de información que el programa trata. Flexibilidad: Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedará reflejado automáticamente en cualquier lugar donde estos datos aparezcan. Estabilidad: permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo.
JESSENIA GARCÈS
Reusabilidad: La noción de objeto permite que programas que traten las mismas estructuras de información reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de un programa puede llegar a ser una simple combinación de objetos.
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
DESARROLLO METODOLOGIAS DEL LENGUAJE PHP. Programación Lineal: Es cuando desarrollamos todo el código disponiendo instrucciones PHP alternando con el HTML de la página. Programación Estructurada: Es cuando planteamos funciones que agrupan actividades a desarrollar y luego dentro de la página llamamos a dichas funciones que pueden estar dentro del mismo archivo o en una librería separada. Programación Orientada a Objetos: Es cuando planteamos clases y definimos objetos de las mismas
¿QUÉ ES LA PROGRAMACIÓN ORIENTADA A OBJETOS? La P.O.O. (también conocida como O.O.P.) es lo que se conoce como un paradigma o modelo de programación. Esto significa que no es un lenguaje específico, o una tecnología, sino una forma de programar, una manera de plantearse la programación. No es la única (o necesariamente mejor o peor que otras), pero se ha constituido en una de las formas de programar más populares e incluso muchos de los lenguajes que usamos hoy día lo soportan o están diseñados bajo ese modelo. Lo que caracteriza a la POO es que intenta llevar al mundo del código lo mismo que encontramos en El Mundo Real™. Cuando miramos a nuestro alrededor ¿qué vemos? pues, cosas, objetos, pero podemos reconocer estos objetos porque cada objeto pertenece a una clase, eso nos permite distinguir, por ejemplo, un perro de un auto (porque son de clases diferentes) y también un TV de otro (porque, aunque sean iguales, cada uno es un objeto distinto). Éste es el modelo que la POO intenta seguir para estructurar un sistema. Es importante recalcar nuevamente que la POO no es un lenguaje de programación, es una forma de enfrentarse a ella. Esto significa que la POO le servirá para desarrollar en muchos de los lenguajes comunes de hoy en día (incluso en ASPuaj!) manteniendo un mismo esquema mental. Incluso le permitirá enfrentar otros proyectos que no necesariamente estén relacionados con escribir código.
Atributo, Attribute: Es un dato que representa las propiedades en un objeto. Campo, Field: Es una instancia de una variable. Operación: Operation: Lleva a cabo las responsabilidades de la clase. Método, Method: Es la implementación de una operación. Mensaje, Message: Una solicitud de un objeto a otro.
JESSENIA GARCÈS
CONCEPTOS BASICOS
Invocación o Ejecución, Invocation o execution: Realización de una operación en respuesta a un mensaje. Asociación, Association: Una relación entre dos clases, implica la precensia de instancias de las clases que tienen asociación. Agregación, Aggregation: Toda una parte de una asociación. Composición, Composition: Un tipo de agregación donde las partes se destruyen cuando todo se destruye. Interface, Interface: Una conducta que debe ser seguida por un juego de objetos. Protocolo, Protocol: Lenguajes y reglas que se utilizaran por los mensajes en una red. Comportamiento, Behavior: Es en conjunto lo que hace un objeto, es el conjunto de las operaciones de un objeto.
¿QUÉ ES UN OBJETO?
JESSENIA GARCÈS
Un objeto no es más que un conjunto de variables (o datos) y métodos (o funciones) relacionados entre sí. Los objetos en programación se usan para modelar objetos o entidades del mundo real (el objeto hijo, madre, o farmacéutica, por ejemplo). Un objeto es, por tanto, la representación en un programa de un concepto, y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos. La siguiente figura muestra una representación visual de un objeto.
1. RELACIONES Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con aquellos que forman parte de la misma organización. Las hay dos tipos fundamentales:
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
-Relaciones jerárquicas. Son esenciales para la existencia misma de la aplicación porque la construyen. Son bidireccionales, es decir, un objeto es padre de otro cuando el primer objeto se encuentra situado inmediatamente encima del segundo en la organización en la que ambos forman parte; asimismo, si un objeto es padre de otro, el segundo es hijo del. Una organización jerárquica simple puede definirse como aquella en la que un objeto puede tener un solo padre, mientras que en una organización jerárquica compleja un hijo puede tener varios padres). -Relaciones semánticas. Se refieren a las relaciones que no tienen nada que ver con la organización de la que forman parte los objetos que las establecen. Sus propiedades y consecuencia solo dependen de los objetos en sí mismos (de su significado) y no de su posición en la organización. 2. PROPIEDADES Todo objeto puede tener cierto número de propiedades, cada una de las cuales tendrá, a su vez, uno o varios valores. En OOP, las propiedades corresponden a las clásicas "variables" de la programación estructurada. Son, por lo tanto, datos encapsulados dentro del objeto, junto con los métodos (programas) y las relaciones (punteros a otros objetos). Las propiedades de un objeto pueden tener un valor único o pueden contener un conjunto de valores más o menos estructurados (matrices, vectores, listas, etc.). Además, los valores pueden ser de cualquier tipo (numérico, alfabético, etc.) si el sistema de programación lo permite. Pero existe una diferencia con las "variables", y es que las propiedades se pueden heredar de unos objetos a otros. En consecuencia, un objeto puede tener una propiedad de maneras diferentes: -Propiedades propias. Están formadas dentro de la cápsula del objeto. -Propiedades heredadas. Están definidas en un objeto diferente, antepasado de éste (padre, “abuelo", etc.). A veces estas propiedades se llaman propiedad miembro porque el objeto las posee por el mero hecho de ser miembro de una clase. 3. METODOS
Son sinónimos de 'método' todos aquellos términos que se han aplicado tradicionalmente a los programas, como procedimiento, función, rutina, etc. Sin embargo, es conveniente utilizar el término 'método' para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno OOP, que afectan fundamentalmente a la forma de invocarlo (únicamente a través de un mensaje) y a su campo de acción, limitado a un objeto y a sus descendientes, aunque posiblemente no a todos. Si los métodos son programas, se deduce que podrían tener argumentos, o parámetros. Puesto que los métodos pueden heredarse de unos objetos a otros, un objeto puede disponer de un método de dos maneras diferentes:
JESSENIA GARCÈS
Una operación que realiza acceso a los datos. Podemos definir método como un programa procedimental o procedural escrito en cualquier lenguaje, que está asociado a un objeto determinado y cuya ejecución sólo puede desencadenarse a través de un mensaje recibido por éste o por sus descendientes.
-Métodos propios. Están incluídos dentro de la cápsula del objeto. -Métodos heredados. Estan definidos en un objeto diferente, antepasado de éste (padre,"abuelo", etc.). A veces estos métodos se llaman métodos miembro porque el objeto los posee por el mero hecho de ser miembro de una clase.
¿QUE ES UNA INTERFAZ? Como se ha visto, los objetos definen su interacción con el mundo exterior con los métodos que exponen o se definen. Los métodos forman el interfaz del objeto con el mundo exterior; por ejemplo, los botones en el frente de un televisor, son el interfaz entre el televidente y el cableado eléctrico en el otro lado de la cubierta plástica. Se presiona el botón de “encendido” para la función de encender o apagar y comenzar o detener las demás funciones. En su forma más común, un interfaz es un grupo de métodos relacionados con los cuerpos de código para cada método vacíos. El comportamiento de una bicicleta, si se hubiese especificado como una interfaz, pudo parecerse a lo siguiente: Interface Bicicleta { void cambiarCadencia (int newValue); void cambiarEngranaje(int newValue); void aumentarVeocidad(int incremento); void apliqueFrenos(int disminucion); } Para poner este interfaz en ejecución, el nombre de tu clase cambiaría (por ejemplo a ACMEBicycle), y utilizarías la palabra clave implements en la declaración de la clase. class ACMEBicycle implements Bicicleta {
JESSENIA GARCÈS
// Recordemos la clase Bicicleta vista anteriormente } ¿QUE ES UN PAQUETE? Un paquete es un espacio que organiza un sistema de clases y de interfaces relacionadas. Puedes pensar conceptualmente en paquetes como diversas carpetas en tu computadora. Puede ser que mantengas las páginas HTML en una carpeta, las imágenes en otra, y las escrituras o las aplicaciones en otra. Como el software escrito en Java se puede componer de centenares o de millares de clases individuales, tiene sentido mantener las cosas organizadas, poniendo clases e interfaces relacionadas en paquetes.
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
La plataforma Java proporciona una biblioteca enorme de clases (un sistema de paquetes) conveniente para el uso en las aplicaciones. Se conoce esta biblioteca como “el interfaz de programación de aplicaciones”, o “API”. Sus paquetes representan las tareas usadas comúnmente en las aplicaciones. Por ejemplo, un objeto de la clase “String” contiene el estado y el comportamiento para las cadenas de caracteres; un objeto del tipo File permite que un programador cree, suprima, examine, compare, o modifique fácilmente un archivo en filesystem; un objeto de la clase Socket permite la creación y el uso de los Socket de la red; varios objetos GUI se usan para poner los botones y los checkboxes y todo lo demás relacionado con las interfaces que usan gráficos. Hay literalmente millares de clases a elegir. Esto permite que, el programador, se centre en el diseño de su aplicación en particular, en lugar de preocuparse de la infraestructura requerida para solucionar el problema. La especificación del API de la plataforma Java contiene el listado completo para todos los paquetes, interfaces, clases, campos, y métodos proveídos por la plataforma sobre la cual se quiera trabajar 6. Esta es la documentación más importante a mantener como referencia. ¿QUE ES UNA CLASE?
La programación orientada a objetos se basa en la programación de clases; a diferencia de la programación estructurada, que está centrada en las funciones.
JESSENIA GARCÈS
Una clase es un molde del que luego se pueden crear múltiples objetos, con similares características. Se define las variables y los métodos que son comunes para todos los objetos de un cierto tipo. En nuestro ejemplo, la clase bicicleta definiría variables miembros comunes a todas las bicicletas, como la marcha actual, la cadencia actual, etc. Esta clase también debe declarar e implementar los métodos o funciones miembro que permiten al ciclista cambiar de marcha, frenar, y cambiar la cadencia de pedaleo.
DECLARACION DE UNA CLASE Y CREACION DE UN OBJETO
JESSENIA GARCÈS
La clase define los atributos y métodos comunes a los objetos de ese tipo, pero luego, cada objeto tendrá sus propios valores y compartirán las mismas funciones. Debemos crear una clase antes de poder crear objetos (instancias) de esa clase. Al crear un objeto de una clase, se dice que se crea una instancia de la clase o un objeto propiamente dicho. EJEMPLO DE UNA CLASE
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
SINTAXIS PARA CREAR UNA CLASE
MODIFICADORES DE ACCESO. Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase Publico: Cualquier clase puede “ver” los miembros públicos de otra clase Privado: Sólo la clase puede ver sus propios miembros privados Existen otros dos modificadores para propósitos específicos (Paquete, Protegido)
JESSENIA GARCÈS
PILARES DE LA ORIENTACION A OBJETOS
ENCAPSULAMIENTO
Es la suma de funciones a elementos de datos, a esta unión se le llama encapsulamiento. Por ejemplo, un objeto página contiene las dimensiones físicas de la página (ancho, alto), el color, el estilo del borde, etc., llamados atributos. Encapsulados con estos datos se encuentran los métodos para modificar el tamaño de la página, cambiar el color, mostrar texto, etc. La responsabilidad de un objeto página consiste en realizar las acciones apropiadas y mantener actualizados sus datos internos. Cuando otra parte del programa (otros objetos) necesitan que la pagina realice alguna de estas tareas (por ejemplo, cambiar de color) le envía un mensaje.
JESSENIA GARCÈS
A estos objetos que envían mensajes no les interesa la manera en que el objeto página lleva a cabo sus tareas ni las estructuras de datos que maneja, por ello, están ocultos.
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
Mantenibilidad Cualidad que indica que un programa o sistema debe ser fácilmente modificable. Es decir que los cambios en las condiciones externas (como la definición de una nueva variable) implicarán modificaciones pequeñas en el programa / sistema. Reusabilidad Cualidad que nos indica que partes del programa ( en este caso objetos) pueden ser reutilizados en la confección de otros programas. Ello implica que los objetos definidos en un programa pueden ser extraídos del mismo e implantados en otro sin tener que realizar modificaciones importantes en el código del objeto.
POLIMORFISMO
JESSENIA GARCÈS
El polimorfismo es una nueva característica aportada por la OOP. Esta propiedad indica la posibilidad de definir varias operaciones con el mismo nombre, diferenciándolas únicamente en los parámetros de entrada. Dependiendo del objeto que se introduzca como parámetro de entrada, se elegirá automáticamente cuál de las operaciones se va a realizar.
HERENCIA
JESSENIA GARCÈS
La herencia es la última de las propiedades relativas a la OOP, Consiste en la propagación de los atributos y las operaciones a través de distintas sub-clases definidas a partir de una clase común. Introduce, por tanto, una posibilidad de refinamiento sucesivo del concepto de clase. Nos permite definir una clase principal y, a través de sucesivas aproximaciones, cualquier característica de los objetos. A partir de ahora definiremos como sub-clases todas aquellas clases obtenidas mediante refinamiento de una (o varias) clases principales.
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
ABSTRACCION
DISEÑO DE APLICACIONES Y ELECCIÓN DE ENTORNO.
Las metodologías de programación son modelos sobre como diseñar e implementar los programas. Diferentes modelos tienen como resultado diferentes técnicas. Que cada técnica sea distinta no implica que una sea la verdadera y que las demás falsas. Por el contrario, las metodologías se complementan entre sí. Lo que todas las metodologías tienen en común es la premisa de que hay que partir de abstracciones que corresponden a elementos del problema a resolver, y que la implementación de la solución se debe realizar mediante un conjunto de módulos preferiblemente reutilizables.
JESSENIA GARCÈS
Un entorno de programación implica tanto el lenguaje de programación como al empleo de una determinada metodología. Los lenguajes de programación no se producen por generación espontánea y se ven influidos en gran manera por la forma en la que los profesionales piensan que se debe programar. De esta manera se crea un conjunto de reglas para simplificar la tarea de programación. Generalizadas y codificadas, se convierten en <<principios>> de los que surgen los lenguajes de programación en un afán por darles soporte. Estos <<principios>> son modelos que proporcionan técnicas que , a su vez, deben aplicarse en el diseño e implementación de los programas. Estas técnicas nos indican la forma de resolver los distintos problemas que surgen a la hora de programar. Decimos que un lenguaje de programación <<soporta>> un conjunto de <<principios>> si el lenguaje simplifica la aplicación de estas técnicas. A estos <<principios>> se les denomina metodologías de programación.
Las metodologías orientadas a objetos se centran en las estructuras de datos que sin embargo se relegan a un segundo plano en los modelos procedurales. La base de esta metodología es que una estructura de datos debe contener las operaciones que los modifican. La técnica que se utiliza para obtener esta <<abstracción de datos>> es la encapsulación de los mismos en una estructura conocida como clase.
JESSENIA GARCÈS
El accesos a los datos contenidos en la clase se realiza mediante las operaciones que la propia clase define. Por tanto, la metodología orientada a objetos complementa el punto de vista procedural de operaciones realizadas sobre un flujo de datos, al asociar a cada dato el conjunto de operaciones que lo modifican. Como podrá ver, ambos enfoques son complementarios.
PROGRAMACION ORIENTADA A OBJETOS| 23/11/2014
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 las técnicas aprendidas 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. 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.
BIBLIOGRAFÍA http://www.monografias.com/trabajos14/progorie/progorie.shtml#ixzz3Jpo1ILYd http://thefricky.wordpress.com/2007/12/28/programacion-orientada-a-objetos-%C2%BFque-espoo/ http://es.slideshare.net/desimartinez/clase3-programacin-orientada-a-objetos
http://www.monografias.com/trabajos/objetos/objetos.shtml#ixzz3JqG6Fh5L http://www.elrinconcito.com/articulos/POO/POO.htm
JESSENIA GARCÈS
http://aprendeenlinea.udea.edu.co/lms/moodle/file.php/561/Modulos/Modulo10._ProgramacionO rientadaAObjetos.pdf