Sunteți pe pagina 1din 5

Principios de la Orientacin a objetos

Para gestionar la complejidad creciente en el desarrollo de software, un programa orientado a objetos se puede caracterizar por el control de los datos sobre el cdigo. La tarea de la programacin Orientada a Objetos (POO) no es definir los procedimientos que manipulan datos, sino, definir objetos de datos, sus atributos y el modo en que se pueden consultar o modificar. Los objetos, datos y procedimientos se pueden comunicar con otros objetos datos solo mediante canales bien definidos. Un programa consta de una serie de objetos que se comunican entre si envindose mensajes. Esta caracterstica es la esencia de la programacin orientada a objetos. La programacin Orientada a Objetos (POO) esta incluida en el lenguaje Java, todos los programas Java son orientados a objetos. Un sistema orientado a objetos es un conjunto de objetos que interactan entre si y que estn organizados en clases. Los principios o propiedades fundamentales de la POO son: Abstraccin, encapsulamiento, herencia y polimorfismo. Abstraccin Las personas gestionan la complejidad a travs de la abstraccin. La abstraccin es el proceso de capturar los detalles fundamentales de un objeto mientras se suprimen o ignoran los detalles, proporciona un mecanismo crucial para permitir que las personas comprendan, se comuniquen y razonen sistemas complejos. Es un mecanismo para entender en cualquier momento e interactuar con el mundo real sin preocuparse de lo que ocurre. Esta nocin de abstraccin se refiere a la descomposicin de un sistema complejo o complicado en sus partes ms fundamentales y de describir estas partes con un lenguaje sencillo y preciso. Normalmente, la descripcin de las partes de un sistema implica darles un nombre y describir sus funcionalidades. Un modo de gestionar la abstraccin es mediante clasificaciones jerrquicas. Esta propiedad permite que un sistema complejo se descompone en partes ms significativas y fciles de entender, se busca dividir el sistema en partes fundamentales que se puedan nombrar y describir sus funcionalidades. Por ejemplo un auto es un simple objeto, este, consta de varios subsistemas: motor, frenos, sistema de aire acondicionado, sistema elctrico, etc. A su vez cada uno de estos subsistemas se construye con otras unidades especializadas. Las abstracciones jerrquicas de sistemas complejos se pueden aplicar tambin a programas de computadora. Aplicando este concepto al diseo de estructura de datos, su implementacin se realiza mediante un tipo de dato abstracto (TDA). Un TDA es un modelo

matemtico de una estructura de dato que especifica el tipo de dato almacenado, las operaciones soportadas por ellos y tipo de los parmetros de las operaciones Un TDA especifica que hace cada operacin, pero no como lo hace. En Java, un TDA, se puede expresar por una interfaz que normalmente es una lista de declaraciones de mtodos. Un TDA en Java se implementa con una estructura de datos denominadas clase. Una clase define los datos que se estn almacenando y las operaciones soportadas por los objetos que son instancias de la clase. Encapsulamiento u ocultacin de datos. Es el proceso de ocultar todos los detalles de un objeto que no contribuyan a sus caractersticas esenciales. Bsicamente, todo lo que este en el interior de la clase esta oculto; solo las interfaces externas se pueden ver por otros objetos. El usuario de un objeto nunca necesitar conocer el interior de la clase (la caja negra). Una de las ventajas principales del encapsulamiento es que proporciona al programador libertad en la implementacin de los detalles del sistema. La nica restriccin que tendr el programador es mantener la interfaz abstracta que ven los usuarios externos. P.e.: La ventana del men Edicin del WORD , con las distintas funciones y acciones de cortar, copiar y pegar en una interfaz grfica de usuario; el usuario debe comprender como utilizar el men, sin necesidad de conocer como esta implementado este. Realmente el cdigo asociado con el men edicin no depender de los detalles de la implementacin, sino ms bien de que las interfaces estn bien definidas y de como funcionen las operaciones correspondientes. Una forma de pensar en encapsulamiento es en un envoltorio que encierra al cdigo y a los datos. Se pueden acceder desde otro cdigo definido en el exterior del envoltorio. El acceso al cdigo y a los datos en el interior del envoltorio se controla a travs de una interfaz bien definida. El interior de la clase permanece oculto; solo las interfaces externas pueden ser vistas por otros objetos. En Java, los fundamentos de la Encapsulacin estn en la clase. Una clase define la estructura y el comportamiento (datos y cdigo) que se compartir con un conjunto de objetos. Cada objeto de una clase dada contiene la estructura y el comportamiento definido en la clase, como si fuera un molde de figura de la clase. Por esta razn, los objetos se conocen a veces como instancias de una clase. Por consiguiente, una clase es una construccin lgica; un objeto tiene una realidad fsica. De forma ms especifica, los datos definidos en la clase se conocen como variables miembros o variables de instancia. El cdigo que acta sobre los datos se conoce como miembros metodos o simplemente mtodo.

Esto significa que los mtodos de la interfaz de una clase se definen por los mtodos que actan en los datos de sus instancias. El propsito de una clase es encapsular complejidad, hay mecanismos para ocultar la complejidad, de la implementacin dentro de la clase. Cada mtodo o variable de una clase puede ser pblico o privado. La interfaz pblica de una clase representa todo lo que los usuarios externos de la clase necesitan conocer o pueden conocer. Los mtodos y datos privados solo pueden accederse por el cdigo que es miembro de la clase, por consiguiente, cualquier cdigo que no es miembro de la clase no puede acceder a un mtodo o variable privado. Dado a que los miembros privados de una clase solo se pueden acceder por otras partes del programa a travs de los mtodos pblicos, se puede asegurar que no tienen lugar acciones inapropiadas. Esto significa que la interfaz pblica se debe disear cuidadosamente de modo que no se exponga demasiado el trabajo interno de una clase.

Encapsulamiento: Los mtodos pblicos se pueden utilizar para proteger los datos privados.

Herencia Herencia es el proceso mediante el cual un objeto adquiere propiedades de otro objeto. Sin el uso de la herencia, un objeto necesita definir explcitamente todas sus caractersticas. Sin embargo utilizando la herencia, un objeto solo necesita definir aquellas cualidades que lo hace nico dentro de su clase. Puede heredar atributos generales de su clase padre o clase base, tambin se la conoce como superclase. El mecanismo de herencia es aquel que hace posible que un objeto sea una instancia especifica de un caso ms general. Si la clase dada encapsula algunos atributos, entonces cualquier subclase tendr los mismos atributos que la superclase ms cualquiera que se aada como parte de su especializacin. Una nueva subclase hereda todos los atributos de todos sus ascendientes.

En programacin orientada a objetos se pueden derivar o extender nuevas clases de otras clases existentes. Esta propiedad se denomina herencia. En Java es un concepto importante, cada clase que se define en Java se hereda de una clase existente. En Java, la clase de la que se hereda se denomina superclase. La clase derivada de la superclase se denomina subclase, clase hija, clase extendida o clase derivada. Se pueden reutilizar o cambiar los mtodos en las subclases. Las subclases normalmente tienen ms funcionalidad que su superclase. Cada subclase hereda el estado (en forma de declaracin de variables) de una superclase. Tambin hereda mtodos de la superclase. Estn no estn limitadas al estado y comportamiento proporcionados a ellas por su superclase, pueden agregar otras variables y mtodos. La subclase tambin puede anular (Reemplazar) mtodos y proporcionar implementaciones especializadas para sus mtodos. Cada subclase hereda el estado (en la forma de declaracin de variables) de todas las clases antecedentes en la jerarqua de todas las clases base. Definicin: Una clase puede no tener padres, en ese caso es una clase base o clase raz. Una clase puede no tener descendientes(hijos), en cuyo caso, se llama clase hoja. Si la clase, solo tiene un padre, tiene herencia simple. Si una clase tiene ms de una clase padre, tiene herencia mltiple. Una de las razones para emplear la herencia es que permite la reutilizacin del cdigo de proyectos anteriores, permitiendo la modificacin (o especializacin) de aquellos aspectos que no concuerden exactamente con las necesidades de nuestra aplicacin. Otras de las razones para el empleo de la herencia es que las aplicaciones utilicen distintos tipos de objetos ligeramente distinto entre ellos. Otra forma de definir una subclase es decir que aporta especializacin a una clase base. Para ello la nueva subclase aporta propiedades y operaciones a las propias del objeto base, llegando incluso a redefinir alguna de las operaciones heredadas de esta. Ejemplo: Un pingino es una ave acutica que no vuela El pingino es una ave y comparte los mismos atributos que el resto de las aves, tiene plumas, pone huevos, etc. Es un ave acutica, es decir, a los atributos comunes a las aves, aporta los comunes a las aves acuticas, como la dieta de peces. La ltima afirmacin, no vuela, identifica claramente al pingino de otro tipo de aves como el pelicano, que si vuela.

S-ar putea să vă placă și