You are on page 1of 10

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA

Programacin Orientada a Objetos


Definiciones fundamentales de la Programacin Orientada a Objetos
1200271 Gutirrez Nez Jos Armando 2 de Septiembre de 2013

Pilares de la Programacin Orientada a Objetos

ndice
ndice.1 Abstraccin....2 Encapsulamiento3 Jerarqua5 Modularidad..5 Ejemplo..6 Bibliografa9

Pilares de la Programacin Orientada a Objetos

Abstraccin:
La abstraccin es uno de los medios ms importantes, mediante el cual nos enfrentamos en la complejidad inherente al software. La abstraccin es a propiedad que permite representar las caractersticas esenciales de un objeto, sin preocuparse de las restantes (no esenciales). Una abstraccin se centra en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencia de un objeto de su implementacin. Definir una abstraccin significa describir una entidad del mundo real. [1] Como un ejemplo muy claro, es una fbrica de automviles, esta no pretende producir los equipos de audio o de aire acondicionado, las bateras, as lamparitas o las cubiertas que incluye en sus modelos, y avcese ni si quiera los motores. Por qu hacen esto? Precisamente porque comprrselos a quien produce estas autopartes en forma masiva suele ser ms econmico, adems, de que permite que cada uno se dedique a los que mejor sabe hacer. Lo mismo puede aplicarse al desarrollo de software, utilizando lo desarrollado por otros en nuestras aplicaciones o incluso lo desarrollado en casa para otros sistemas. [2] Por medio de la abstraccin conseguimos no detenernos en los detalles concretos de las cosas que no interesen en cada momento, si no generalizar y centrarse en los aspectos que permitan tener visin global del problema. Otro ejemplo es el estudio de un ordenador el cual podemos realizarlos a nivel de funcionamiento de sus circuitos electrnicos, en trminos de corriente, tensin, etc., o a nivel de transferencia entre registros, centrndose as el estudio en el flujo de informacin entre las unidades que lo componen (memoria, unidad aritmtica, unidad de control, registros, etc.), sin importarnos el comportamiento de los circuitos electrnicos que componen estas unidades. [3]

Pilares de la Programacin Orientada a Objetos

Encapsulamiento:
Es la propiedad que permite asegurar que el contenido de la informacin de un objeto est oculta al mundo exterior: el objeto A no conoce lo que hace objeto B, y viceversa. La encapsulacin (tambin se conoce como ocultacin de la informacin), en esencia, es el proceso de ocultar todos los secretos de un objeto que no contribuye a sus caractersticas esenciales. La encapsulacin permite la divisin de un programa en mdulos. Estos mdulos se implementan mediante clases, de forma que una clase representa la encapsulacin de una abstraccin. En la prctica, esto significa que cada clase debe tener dos artes: una interfaz y una implementacin. El interfaz de una clase captura slo si vista externa y la implementacin contiene la representacin de la abstraccin. [1] Volviendo a la analoga de la industria automotriz, quien provee a una fbrica de automviles de equipos de audio no suelen especificar cmo estn construidos los mismos. Solamente basta con que se asegure una seria de conectores o interfaces que permitan su instalacin y una seria de caractersticas y funcionalidades a prestar. De esta manera, el fabricante del equipo de audio puede establecer cambios en los circuitos internos son necesidad de que el fabricante de autos deba modificar nada si se respetan las interfaces y las prestaciones establecidas. Esto lo logra porque el equipo de audio es, desde el punto de vista de la fbrica de automviles, una caja negra que se testea cerrad, teniendo en cuenta solamente que cumpla las prestaciones establecidas por un contrato y que tenga las interfaces necesarios para poder conectarlo. Con el principio del ocultamiento de implementacin, tambin llamado ocultamiento de informacin u ocultamiento de datos. Este concepto permite el desarrollo de software de modo tal que el cliente no pueda usar la estructura de datos y los algoritmos subyacentes. En otra palabras se pueden utilizas las interfaces pero no la implementacin. De este modo, la interfaz se convierte en una especia de contrato entre las partes, que debe ser respetado. El ocultamiento de implementacin precisa un par de normas respecto de la especificacin:

Al cliente, se le debe provee slo toda la informacin que necesita para usar el mdulo correctamente. Al que implemente el mdulo, se le debe proveer toda la informacin necesaria para comprender el uso que se har del mismo, pero ninguna informacin ms.

El ocultamiento implica separa el qu del cmo. Es decir, el cliente debe conocer qu hace el mdulo, pero no necesariamente cmo lo hace.
3

Pilares de la Programacin Orientada a Objetos

Ventajas del ocultamiento: Permitir cambios de implementacin. Por no poder usar el cliente la estructura de los datos y algoritmos, no va a utilizar propiedades exclusivas de stos, de modo que en futuras modificaciones se podr alterar dicha estructura sin que sean necesarios cambios en los programas clientes.

Impedir violaciones de restricciones entre datos internos. Se refiere a las restricciones que pueda haber entre datos internos, que hayan sido establecidas por el implementador como resguardo para el buen funcionamiento, y que puedan ser arruinadas por el acceso indebido del cliente. En definitiva, se oculta la informacin para que ningn cliente sea dependiente de una nueva forma de implementacin en particular. O dicho de otro modo, para que el cliente pueda estar seguro de que est una usando una aplicacin correctamente, y el implementador pueda introducir cambios y mejoras en el futuro. [2] Esto se deja ver a un objeto como una caja negra en la que se ha introducido de alguna manera toda la informacin relacionada con dicho objeto. Esto nos permitir manipular los objetos como unidades bsicas, permaneciendo oculta su estructura interna. La abstraccin y la encapsulacin estn representadas por la clase. La clase es una abstraccin, porque en ella se definen las propiedades o atributos de un determinado conjunto de objetos con caractersticas comunes, y es una encapsulacin porque constituye una caja negra que encierra tanto los datos que almacena cada objeto como los mtodos que permiten manipularlos. [3]

Pilares de la Programacin Orientada a Objetos

Jerarqua:
Es una propiedad que permite una ordenacin de las abstracciones. Las dos jerarquas ms importantes de un sistema complejo son: Estructura de clases (Es un) Estructura de objetos (Parte de) Nota: No se deben confundir clases y objetos de la misma clase: Un coche rojo y un coche azul no son objetos de clases diferentes, si no de la misma clase con un atributo diferente. Las jerarquas de generalizacin/especializacin se conocen como herencia. Bsicamente la herencia define una relacin entre clases, en donde una clase comparte la estructura o comportamiento definido en una o ms clases (herencia simple y herencia mltiple). La agregacin es el concepto que permite el agrupamiento fsico de estructuras relacionadas lgicamente. As, un camin se compone de ruedas, motor, sistema de transmisin y chasis; en consecuencias, camin es una agregacin y ruedas, motor, trasmisin y chasis son agregados de camin. [1]

Modularidad:
La modularidad es la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una la cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. La modularizacin, como lo indica Liskov, consiste en dividir en programa en mdulos que se puedan compilar por separado, pero que tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la modularidad de diversas formas. Por ejemplo, en C++ los mdulos son archivos compilados por separado. [1] Un problema difcil es ms sencillo al dividirlo en pequeas partes y tratar de buscarle la solucin de cada una de ellas y as resolver todo el problemas general; lo mismo sucede en la programacin, la mejor forma de elaborar y dar mantenimiento a un programa complejo es construirlo a partir de bloque menores o mdulos, pues de esta manera es ms fcil analizar, programar y darle mantenimiento a cada uno de ellos, que si estuviera todo el cdigo en el programa principal. Dichos mdulos se escriben una vez pero pueden ser llamados en diferentes puntos del programa principal o de cualquier otro modulo. [4]
5

Pilares de la Programacin Orientada a Objetos

Ejemplo con cdigo:

Uso de la Modularidad: En este caso se est utilizando 3 archivos distintos en la misma carpeta

Cdigos de los archivos La clase Nombre:


public class Nombre { String nombre; private String apellido; /*Metodo para establecer el apellido*/ public void setApellido( String ape ){ apellido = ape; }//fin del metodo setApellido /*Metodo para obtener el apellido*/ public String getApellido(){ return apellido; }//fin del metodo getNombre public String toString(){ return String.format( "" + nombre + " " + getApellido() ); }//fin del metodo toString }//fin de la clase Nombre

Pilares de la Programacin Orientada a Objetos

La clase Persona
public class Persona { /*Aqu se implementa el concepto de composicin, comnmente definido en objetos como tiene un, en este caso Persona tiene un Nombre*/ Nombre nombre; private int edad; /*Metodo para establecer la edad*/ public void setEdad( int edad ){ /*como la variable de instancia y la variable utilizada como *argumento * tienen el mismo nombre se diferencian en el metodo con la *instruccion * this.nombreVariable para hacer referencia a la variable de *instancia */ this.edad = edad; }//fin del metodo setEdad /*Metodo para obtener la edad*/ private int getEdad(){ return edad; }//fin del metodo getEdad public String toString(){ return String.format( "Nombre:" + nombre + "\nEdad: " + getEdad() }//fin del metodo toString }//fin de la clase persona

);

La clase Estudiante
/*la clase Estudiante extiende a Persona es decir Persona hereda a Estudiante * por medio de la instruccion extends, la sintaxis es: * class <NombredeClasehijo> extends <Clasepadre> * Este concepto es comnmente definido como: es un, en este caso un *Estudiante es una Persona */ public class Estudiante extends Persona{ int matricula; public void setMatricula( int mtr){ /*Por medio de un metodo se pueden realizar las validaciones * correpondientes y asegurarse de que no se ingresen errores de datos */ matricula = (mtr > 0 )? mtr: 0; }//fin de la clase matricula public int getMatricula(){ return matricula; }//fin de la clase getMatricula public String toString(){ return String.format( "" + super.toString() + "\nMatricula: " + getMatricula() ); }//fin del metodo toString

Pilares de la Programacin Orientada a Objetos

}//fin de la clase Estudiante

Salida del programa: D:\java20132\paraEnsayo>java Inicio Nombre:Alex Juarez Edad: 29 Matricula: 5

Pilares de la Programacin Orientada a Objetos

Bibliography
[1] L. Joyanes, Programacion Orientada a Objetos, Madrid: McGrawHill, 1996. [2] C. Fontela, Programacion Orientada a Objetos, Buenos Aires: nlNuevaLibreria, 2003. [3] F. J. Ceballos, Java2, RA-MA, 2007. [4] M. A. C. Nakamura, Diseo de algoritmos y su codificacin en lenguaje C, Mxico: McGarwHill, 2011. [5] H. D. Paul Deitel, Como programar en Java, Mxico: PEARSON, 2012.

You might also like