ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

La Programación Orientada a Objetos


Enviado por   •  27 de Mayo de 2014  •  Trabajo  •  2.829 Palabras (12 Páginas)  •  211 Visitas

Página 1 de 12

1.- Conceptos Básicos

1.1 ¿QUÉ ES LA PROGRAMACIÓN ORIENTADA A OBJETOS?

La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

1.2 Importancia de la Programación Orientada a Objetos (POO)

• Facilita la creación de software de calidad: potencia en mantenimiento, la extensión y la reutilización.

• Basada en el mono de pensar del hombre y en el modo de operar de la máquina.

• El elemento básico no es la función (programación estructurada), sino un ente denominado objeto.

1.3 Clases y Objetos: un primer contacto

El mundo está lleno de objetos: el coche, la lavadora, la mesa, el teléfono,

etc. El paradigma de programación orientada a objetos proporciona las abstracciones necesarias para poder desarrollar sistemas software de una forma más cercana a esta percepción del mundo real.

Mediante la POO, a la hora de tratar un problema, podemos descomponerlo en subgrupos de partes relacionadas. Estos subgrupos pueden traducirse en unidades auto contenidas llamadas objetos. Antes de la creación de un objeto, se debe definir en primer lugar su formato general, su plantilla, que recibe el nombre de clase. Por ejemplo, pensemos que estamos intentando construir una aplicación de dibujo de cuadrados. Nuestro programa va a ser capaz de pintar cuadrados con diferentes tamaños y colores: uno será rojo y de 3 centímetros de lado, otro verde y de 5 centímetros de lado, etc. Como podemos deducir, cada cuadrado está definido por dos características, lado y color, y contiene la operación dibuja. Desde el punto de vista de la POO, cada cuadrado se va a representar como un objeto de la clase Cuadrado que es la contiene las características y operaciones comunes de los objetos. En realidad, estamos creando un nuevo tipo, el tipo Cuadrado, y cada variable de este tipo especial recibe el nombre de objeto.

Una clase, por lo tanto, puede definirse como un tipo de datos cuyas variables son objetos o instancias de una clase. Puede decirse que el concepto de clase es estático y el concepto de objeto es dinámico; ya que, sólo existe en tiempo de ejecución. Cada objeto de una clase comparte con el resto las operaciones, y a la vez posee sus propios valores para los atributos que posee: esto es, su estado. Las operaciones, también llamadas mensajes, se usarán tanto para cambiar el estado de un objeto como para comunicar objetos entre sí mediante el paso de mensajes.

1.4 Objetos

Un programa tradicional se compone de procedimientos y de datos. Un programa orientado a objetos se compone solamente de objetos. Un objeto es una encapsulación genérica de datos y de los procedimientos para manipularlos. Dicho de otra forma, un objeto es una entidad que tiene unos atributos particulares, los datos, y unas formas de operar sobre ellos, los métodos.

Por lo tanto, un objeto contiene por una parte, operaciones que definen su comportamiento y por otra, variables, manipuladas por esas operaciones, que definen su estado. Por ejemplo, una ventana Windows contiene operaciones como maximizar y minimizar (los métodos) y variables como ancho y alto (los atributos).

1.5 Características de la Programación Orientada a Objetos

Hay un cierto desacuerdo sobre exactamente qué características de un método de programación o lenguaje le definen como “orientado a objetos”, pero hay un consenso general en que las características siguientes son las más importantes (para más información, seguir los enlaces respectivos):

• Abstracción: 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.

• 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 cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

• Principio de ocultación: 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. 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.

• 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. Cuando esto ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en “tiempo de compilación”) de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

• Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que re implementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y estas

...

Descargar como (para miembros actualizados) txt (18 Kb)
Leer 11 páginas más »
Disponible sólo en Clubensayos.com