You are on page 1of 9

Metodologa de programacin orientada a objetos Es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas

informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos. * Concepto de objeto Los objetos son entidades que se pueden distinguir de manera clara y definida, ejemplos de un objeto pueden ser una persona, un libro, un botn de orden. * Estructura interna de un objeto La estructura interna de un objeto est compuesta por tres elementos fundamentales como son: * Propiedades: Son las caractersticas observables de un objeto. Las propiedades se reconocen porque describen un aspecto del objeto que podemos medir con una escala establecida previamente. A cada propiedad se le debe asignar un valor el cual permite identificar de manera nica al objeto. * Mtodos: Se define como un conjunto de acciones que un objeto puede realizar para conseguir un propsito. Los mtodos representan la parte viva e interesante de un objeto y se emplean habitualmente para modificar las propiedades del objeto. Al modificar cualquiera de las propiedades del objeto se altera su apariencia y se genera un cambio que el usuario de la aplicacin puede percibir. * Eventos: Todos los objetos se relacionan con el mundo que los rodea, esto significa que ningn objeto est aislado y siempre recibe el influjo de otros objetos. Los eventos son los estmulos que un objeto ejerce sobre otro. Estado de un objeto:

El estado de un objeto es la apariencia que el objeto presenta al usuario, y depende del valor que tenga sus propiedades. Un cambio de estado se logra alterando al menos una de las propiedades del objeto. Conceptos fundamentales La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los siguientes: Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Objeto: Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (mtodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase. Mtodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema. Evento: Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que puede desencadenar un objeto, es decir la accin que genera. Propiedad o atributo: 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 caractersticas predeterminadas, y cuyo valor puede ser alterado por la ejecucin de

algn mtodo. Estado interno: es una variable que se declara privada, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase. Componentes de un objeto: atributos, identidad, relaciones y mtodos. Identificacin de un objeto: un objeto se representa por medio de una tabla o entidad que est compuesta por sus atributos y funciones correspondientes. * Concepto de mensajes y sus pasos Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener. Mensajes: activacin de objetos Los objetos pueden ser activados mediante la recepcin de mensajes. Un mensaje es simplemente una peticin para que un objeto se comporte de una determinada manera, ejecutando una de sus funciones miembro. La tcnica de enviar mensajes se conoce como paso de mensajes. Estructuralmente un mensaje consta de tres pasos: * La identidad del objeto receptor * La funcin miembro del receptor cuya ejecucin se ha solicitado * Cualquier otra informacin adicional que el receptor pueda necesitar para ejecutar el mtodo requerido. En C++, la notacin utilizada es nombre_del_objeto.funcin_miembro. * Herencia Herencia: (por ejemplo, herencia de la clase C a la clase D) 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 mtodos y variables pblicas declaradas en C. Los componentes registrados como "privados" (private) tambin se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico el ideal de OOP. Existen dos tipos de herencia * Herencia Simple: En esta jerarqua cada clase tiene como mximo una sola superclase. La herencia simple permite que una clase herede las propiedades y mtodos de su superclase en una cadena jerrquica. * Herencia mltiple: Una malla o retcula consta de clases, cada una de las cuales pueden tener dos o ms superclases inmediatas. Una herencia mltiple es aquella en la que cada clase puede heredar las propiedades y mtodos de cualquier nmero de clases. * Clases y tipos de clases Los objetos estn organizados en familias claramente delimitadas. Una familia se reconoce porque rene un grupo de objetos que heredan elementos entre s. El modelo de programacin visual, al igual que la naturaleza, organiza los objetos en clases (familias), as una clase es el conjunto de objetos que pertenecen a una misma familia. Por ejemplo Madonna, Michael Jackson, Prince y Dire Straits son objetos de una clase cantantes de rock, sin embargo personas especficas con nombres especficos son miembros de esa clase si poseen ciertas caractersticas comunes. El modelo de programacin visual permite as organizar las familias de objetos en un orden jerrquico. Una clase es un conjunto de objetos que comparten una estructura y comportamiento comunes. Clase representa una abstraccin, la esencia que comparten los

objetos. Un objeto es un ejemplo de una clase. Un objeto no es una clase, y una clase no es un objeto (aunque puede serlo, p.e. en Smalltalk). Las clases actan como intermediarias entre una abstraccin y los clientes que pretenden utilizar la abstraccin. De esta forma, la clase muestra: * Visin externa de comportamiento (interface), que enfatiza la abstraccin escondiendo su estructura y secretos de comportamiento. * Visin interna (implementacin), que abarca el cdigo que se ofrece en la interface de la clase. Relaciones entre clases Representan tipos de comparticin entre clases, o relaciones semnticas. Asociacin. Indica relaciones de mandato bidireccionales (Punteros ocultos en C++). Conlleva dependencia semntica y no establece una direccin de dependencia. Tienen cardinalidad. Herencia. Por esta relacin una clase (subclase) comparte la estructura y/o comportamiento definidos en una (herencia simple) o ms (herencia mltiple) clases, llamadas superclases. Representa una relacin del tipo "es un" entre clases. Una subclase aumenta o restringe el comportamiento o estructura de la superclase (o ambas cosas). Una clase de la que no existen ejemplos se denomina {\it abstracta}. C++ declara como virtuales todas aquellas funciones que quiere modificar en sus subclases. Agregacin. Representa una relacin del tipo "tener un" entre clases. Cuando la clase contenida no existe independientemente de la clase que la contiene se denomina agregacin por valor y adems implica contenido fsico, mientras que si existe independientemente y se accede a ella indirectamente, es agregacin por referencia. Uso. Es un refinamiento de la asociacin donde se especifica cual es el cliente y cual el servidor de ciertos servicios, permitiendo a los

clientes acceder slo a las interfaces pblicas de los servidores, ofreciendo mayor encapsulacin de la informacin. Ejemplificacin Se usa en lenguajes que soportan genericidad (declaracin de clases parametrizadas y argumentos tipo template). Representa las relaciones entre las clases parametrizadas, que admiten parmetros formales, y las clases obtenidas cuando se concretan estos parmetros formales, ejemplificados o inicializados con un ejemplo. Metaclases Son clases cuyos ejemplos son a su vez clases. No se admiten en C++. Caractersticas de la POO Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", las caractersticas siguientes son las ms importantes: Abstraccin: denota las caractersticas 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 cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar. Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se suelen emplear

conjuntamente. Modularidad: Se denomina Modularidad a la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la Modularidad de diversas formas. Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. 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 abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos. * Polimorfismo 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 invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la

sobrecarga de operadores de C++. Herencia: (ver en herecia pag.3) Recoleccin de basura: la recoleccin de basura o garbage collector es la tcnica por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajes hbridos que se extendieron para soportar el Paradigma de Programacin Orientada a Objetos como C++ u Object Pascal, esta caracterstica no existe y la memoria debe desasignarse manualmente. * Diferencias entre clases y objetos Una clase es la definicin de un tipo de objeto. Esta definicin explica cuales mtodos y atributos tiene un objeto de esta clase. Por lo tanto un objeto es una realizacin o instancia de una clase. Si desarrollamos un programa de ordenador para nuestro concesionario, solo habr una clase automvil, es decir una sola definicin, pero en la memoria puede haber ninguno, uno o varios objetos de clase automvil, existiendo en un momento dado. La clase es solo una simple abstraccin, es un patrn Objeto es una entidad real. Bibliografa http://apdaza-poo.blogspot.com/2007/09/conceptos-bsicos-depoo.html http://www.elguille.info/colabora/puntoNET/canchala_Fundamentos POO.htm http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_obj etos http://www.cristalab.com/tutoriales/programacion-orientada-aobjetos-herencia-de-clases-c261l/ http://html.rincondelvago.com/poo_9.html

http://www.webcontenido.com/news.php?newsid=45 http://boards4.melodysoft.com/2004BFDP0207/diferencia-entreclases-y-objetos-2.html

You might also like