Sie sind auf Seite 1von 7

PROGRAMACION ORIENTADA A OBJETOS La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de programacin que

usa objetos y sus interacciones, para disear aplicaciones y programas informticos

CARACTERSTICAS DE LOS LENGUAJES OOP

Eficiencia. Los lenguajes OOP arrastraron en un principio la reputacin de ser ineficaces. Esto se deba en gran medida a que los primeros lenguajes (como Smalltalk) eran interpretados y no compilados. La existencia de compiladores permite a los desarrolladores ganar rapidez. Actualmente, usando un buen lenguaje orientado a objetos como C++, Java, etc. Junto con las libreras apropiadas para la realizacin de un programa, puede que se ejecute ms rpidamente que el mismo programa compilado con un lenguaje procedural.

Asignacin de tipos. Los lenguajes orientados a objetos varan de forma sustancial la forma por la que se aproximan a la asignacin de tipos. Por asignacin de tipos entendemos que cada variable sea identificada como perteneciente a una clase (asignacin fuerte) o sea simplemente un objeto indeterminado (asignacin dbil). Eiffel y C son dos lenguajes basados en la asignacin fuerte, frente a Smalltalk, en el que todas las variables definidas pertenecen a una clase indeterminada. La asignacin fuerte sirve a dos propsitos. Por una parte para que el desarrollador pueda identificar a que clase pertenece cada operacin. De forma concreta, en aquellos lenguajes donde est implementado el operator overloading (redefinicin de operador), el compilador puede reconocer a travs de las clases que entran como parmetros en la operacin que operacin tiene que utilizar. Por otra, este tipo de declaracin permite al compilador un mayor grado de optimizacin, ya que conoce en todo momento el espacio que ha de asignar.

Manejo de memoria. Los OOP son lenguajes que utilizan de manera intensiva la memoria de la computadora. Hay dos tipos de aproximacin a la gestin de memoria. El sistema en tiempo de ejecucin libera la memoria automticamente a medida que los objetos dejan de utilizarse. El sistema tiene instrucciones concretas para liberar la memoria

explcitamente. Este el enfoque adoptado por lenguajes como C++, que aportan dos operadores: crear y destruir. El primero reserva automticamente memoria, mientras que el segundo la libera.

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++.

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.

CARACTERSTICAS ASOCIADAS AL POO

Ocultamiento Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer slo los detalles que sean necesarios para el resto del sistema. El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque habr cierto comportamiento privado de la Clase que no podr ser accedido por otras Clases. Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en estos mecanismos dnde se validarn que algunas condiciones se cumplan. En Java el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y mtodos.

Abstraccin Denota las caractersticas esenciales que distinguen a un objeto de otros tipos de objetos, definiendo precisas fronteras conceptuales, relativas al observador. Surge del reconocimiento de similaridades entre ciertos objetos, situaciones o procesos en el mundo real. Decide concentrarse en estas similaridades e ignorar las diferencias. Enfatiza detalles con significado para el usuario, suprimiendo aquellos detalles que, por el momento, son irrelevantes o distraen de lo esencial. Deben seguir el "principio de mnimo compromiso", que significa que la interface de un objeto provee su comportamiento esencial, y nada ms que eso. Pero tambin el "principio de mnimo asombro": capturar el comportamiento sin ofrecer sorpresas o efectos laterales. Uso

A grandes rasgos, la abstraccin, permite que dispongamos de las caractersticas de un objeto que necesitemos. Si necesitamos el objeto Persona, podramos poner nombre, edad, direccin, estado civil, etc. Si lo necesitamos en un sistema

administrativo, pero, si lo requerimos para el rea de biologa, dentro de sus atributos quiz tengamos, ADN, RND, Gen x1, Gen x2, etc. Y los atributos antes mencionados no sean requeridos. En general, podemos decir que Persona cuenta con todos los atributos mencionados aqu, pero, por el proceso de abstraccin excluimos todos aquellos, que no tiene cabida en nuestro sistema. Se define como un mtodo por el cual rescata los datos relevantes e ignora los datos irrelevantes. Ejemplo. Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Una analoga sera modelizar un coche en un esquema de POO. Diramos que el coche es el elemento principal que tiene una serie de caractersticas, como podran ser el color, el modelo o la marca. Adems tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar. En un esquema POO el coche sera el objeto, las propiedades seran las caractersticas como el color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar.

Encapsulacin Es el proceso de compartimentalizacin de los elementos de una abstraccin que constituyen su estructura y comportamiento. La encapsulacin sirve para separar la interface de una abstraccin y su implementacin. Es un concepto complementario al de abstraccin. La encapsulacin esconde la implementacin del objeto que no contribuye a sus caractersticas esenciales. La encapsulacin da lugar a que las clases se dividan en dos partes:

1. Interface: captura la visin externa de una clase, abarcando la abstraccin del comportamiento comn a los ejemplos de esa clase. 2. Implementacin: comprende la representacin de la abstraccin, as como los mecanismos que conducen al comportamiento deseado. Se conoce tambin como ocultamiento o privacidad de la informacin.

Modularidad Es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de mdulos cohesivos y vagamente conexos. Cada mdulo se puede compilar separadamente, aunque tengan conexiones con otros mdulos. En un diseo estructural, modularizacin comprende el agrupamiento

significativo de subprogramas. En diseo orientado a objetos, la modularizacin debe ceirse a la estructura lgica elegida en el proceso de diseo. Dividir un programa en componentes individualizados reduce en alguna manera su complejidad. C++ Se separan los mdulos interface de los mdulos con implementacin, estando los primeros en ficheros con extensin .h llamados header files, mientras que los segundos se almacenan en ficheros con extensin .c, .cc, .cp o .cpp. La dependencia entre ficheros se realiza a travs de la macro #include.

Jerarquizacin Es una clasificacin u ordenacin de las abstracciones. Por jerarqua denotamos el orden de relacin que se produce entre abstracciones diferentes. Los tipos de jerarqua ms tiles:

1. Herencia (generalizacin/especializacin, padre/hijo, jerarqua del tipo "es un"...). Una clase (subclase) comparte la estructura o comportamiento definido en otra clase, llamada superclase. 2. Herencia mltiple Una clase comparte la estructura o comportamiento de varias superclases. 3. Agregacin Comprende relaciones del tipo "es parte de" al realizar una descomposicin. Relaciones entre los conceptos asociados al modelo de objetos. Los conceptos de abstraccin y encapsulacin son conceptos complementarios: abstraccin hace referencia al comportamiento observable de un objeto, mientras

encapsulacin hace referencia a la implementacin que la hace alcanzar este comportamiento. Existe una tensin entre los conceptos de encapsulacin de la informacin y el concepto de jerarqua de herencia, que requiere una apertura en el acceso a la informacin. C++ Ofrece mucha flexibilidad, pudiendo disponer de tres compartimentos en cada clase: 1. Privado: declaraciones accesibles slo a la clase (completamente encapsulado) 2. Protegido: declaraciones accesibles a la clase y a sus subclases. 3. Pblico: declaraciones accesibles a todos los clientes. Adems de estos tres tipos, soporta la definicin de clases cooperativas a las que se les permite acceder a la parte privada de la implementacin. Estas clases se denominan friends.

Tipificado Tipificar es la imposicin de una clase a un objeto, de tal modo que objetos de diferentes tipos no se puedan intercambiar, o se puedan intercambiar solo de forma restringida. Tipo es una caracterizacin precisa de las propiedades estructurales y de comportamiento que comparten una coleccin de entidades. Grosso modo, tipo y clase pueden considerarse sinnimos. Existen lenguajes fuertemente tipificados (Ada) y dbilmente tipificados. Estos ltimos soportan polimorfismo, mientras que los fuertemente tipificados no.

Concurrencia Es la propiedad que distingue un objeto activo de uno no activo. Concurrencia permite que diferentes objetos acten al mismo tiempo, usando distintos threads de control.

Persistencia Es la propiedad por la cual la existencia de un objeto trasciende en el tiempo (esto es, el objeto sigue existiendo despus de que su creador deja de existir) o en el espacio (esto es, la localizacin del objeto cambia respecto a la direccin en la que fue creado).

Das könnte Ihnen auch gefallen