El paradigma orientado a objetos cuenta con cuatro
caractersticas fundamentales, caractersticas necesarias para que un modelo sea considerado orientado a objetos. La primer caracterstica, la conocemos como ABSTRACCION. Dicha caractersticas permite identificar las partes mas importantes y esenciales de un objeto sin tener en cuenta aquellas otras que no lo son y resaltar la simplicidad del mismo. Permite centrar nuestra atencin en las partes esenciales de un problema y dejar de lado los detalles que no agregan valor a la resolucin de un problema. (auto) En resumen la abstraccin nos permite definir a un objeto en su forma mas general sin tener en cuenta sus detalles internos. En el PaOO, la complejidad es controlada por medio de esta caracterstica, ya que identificamos lo mas importante y eliminamos lo mas irrelevante. La segunda caracterstica la conocemos como ENCAPSULAMIENTO. Denominamos encapsulamiento a la manipulacin de datos por medio de mtodos a partir de la combinacin o agrupamiento de atributos y mtodos en una unidad. El Encapsulamiento provee una capa de seguridad alrededor de los datos o atributos que se manipulan, protegindolos de accesos externos indeseados. La comunicacin entre objetos se da por medio de mensajes, lo nico que un objeto conoce de otro objeto es el conjunto de mtodos que puede invocar. (tambin conocido como INTERFAZ o protocolo del objeto). Cabe aclarar, que para prohibir el acceso a los atributos de un objeto, se logra marcando dichos atributos con el modificador de acceso PRIVATE. En caso de que otras entidades puedan modificar los atributos de un objeto, dichos atributos son pblicos. (LOS METODOS TAMBIEN PUEDEN SER PUBLICOS O PRIVADOS). El propsito de el Encapsulamiento es separar la implementacin de un objeto de su interfaz. Dicha Interfaz esta conformada por el conjunto de mtodos que pueden ser ejecutados y debe ser la nica parte visible de un Objeto. (BANCO- interfaz (Extraer/Depositar dinero) BANCO Implementacin o atributos (Nro. de cuenta/Saldo). El resultado de el encapsulamiento da como resultado una menor dependencia entre objetos. Adems de mejorar la Seguridad, Organizacin y mantenimiento de un sistema. La tercer caracterstica se denomina HERENCIA. Muchos objetos comparten caractersticas en comn, el Paradigma Orientado a Objetos permite que un objeto herede atributos y mtodos de otros objetos. Esta caracterstica la denominamos HERENCIA. La Herencia nos permite definir nuevas clases a partir de clases existentes.(Alumno/Profesor((PERSONA))) Definimos herencia como un mecanismo que permite que una clase defina sus propios atributos y mtodos y tambin pueda heredar atributos y mtodos de otras clases. A las relaciones de Herencia tambin se las denomina relaciones de extensin o generalizacin. Cabe aclarar que las subclases pueden convertirse en clases padres, dando como resultado un denominado ARBOL JERARQUICO. En las clases Hijas podemos redefinir o sobrescribir mtodos pertenecientes a la clase padre. Como ventajas, podemos decir que la herencia nos permite un desarrollo de modelos mas naturales e intuitivos por medio de relaciones jerrquicas, nos permite una reutilizacin de cdigo, nos da la posibilidad de descomponer un concepto en varias partes hasta nos brinda una facilidad para adaptarse a futuros cambios. La cuarta y Ultima caracterstica, la conocemos como POLIMORFISMO. Caracterstica que indica la habilidad de los objetos de comportarse de distintas maneras ante un mismo mensaje. (monitor/impresora) Esta caracterstica ayuda al programador a simplificar la resolucin de un problema, reduce la dependencia entre objetos, hasta favorece a la extensibilidad del sistema.
VENTAJAS DE LA PROGRAMACION ORIENTADA A OBJETOS
La POO consta de mltiples ventajas, la primera la
conocemos como MODULARIDAD: Entendemos por modulo, a un bloque de cdigo, ya sea un bloque de un mtodo, bloque una clase, etc. El nivel de Modularidad de un sistema va a estar determinado por el numero de mdulos que lo componen y la interaccin que existe entre los mdulos. Entre los beneficios de la modularidad, podemos decir que los problemas se resuelven como una divisin en subproblemas mas pequeos y de menor complejidad. Segundo, si es necesario un cambio, solamente se aplica a un modulo disminuyendo el impacto en el resto del sistema. Tercero, facilita el entendimiento del sistema, tambin se pueden realizar pruebas sobre un modulo independientemente del resto del sistema. Y adems nos permite razn de manera mas natural e intuitivamente. Otra ventaja de la POO es la FACILIDAD DE MANTENIMIENTO, LA EXTENSIBILIDAD, es decir no hay problema en agregar nuevas clases y subclases, en agregar atributos y mtodos en clases existentes. Y por ultimo, la POO nos permite la reutilizacin de cdigo (HERENCIA Y ENCAPSULAMIENTO) Los mdulos que iremos desarrollando estarn disponibles para su reutilizacin tantas veces como sea necesario cuando se los necesite. Al reutilizar mdulos, reducimos el tiempo de desarrollo, logramos mayor consistencias, facilitamos las tareas de mantenimiento, reducimos la cantidad de cdigo en un programa, por lo tanto eliminamos la posibilidad de que haya redundancia de cdigo y por ultimo desarrollamos modelos mas naturales.