Sei sulla pagina 1di 3

CARACTERSTICAS POO

ABSTRACCIN
Ignorancia Selectiva

La abstraccin nos ayuda a trabajar con cosas complejas Se enfoca en lo importante Ignora lo que no es importante (simplifica) Una clase es una abstraccin en la que: Se enfatizan las caractersticas relevantes Se suprimen otras caractersticas Una clase debe capturar una y solo una abstraccin clave
El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar. HERENCIA - Es una relacin entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch) -Cada clase que hereda de otra posee: Los atributos de la clase base adems de los propios Soporta todos o algunos de los mtodos de la clase base -Una subclase hereda de una clase base La herencia (en la POO) es una potente arma que podemos utilizar para varias cosas, entre ellas, por ejemplo, ahorrar lneas de cdigo heredando de otras clases, compartiendo variables miembro o funcin miembro. Tambin podemos generar superclases abstractas para definir comportamientos genricos que necesitemos. La herencia es una de las caractersticas que ms se hace notar a la hora de escribir cdigo, o reutilizar cdigo de otros programadores. ENCAPSULAMIENTO Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos

Deben ser declarados como privados -Permite abstraer al resto del mundo de la complejidad de la implementacin interna -Permite exponer el estado del objeto slo a travs del comportamiento que le hayamos definido mediante miembros pblicos -Por qu es til? Punto de Control/Validacin Mejor respuesta ante los Cambios Otro de los pilares de la orientacin a objetos es el encapsulamiento. Para entender este principio veamos un ejemplo prctico: Como todos ustedes se imaginarn, no es necesario ser mecnico de automviles para poder manejar uno. Si el comprender cmo es el funcionamiento interno del motor, la direccin, los frenos, los cilindros, etc. fuera requisito para poder manejar un automvil, seran muchos menos los conductores certificados y sera mucho ms difcil aprender a manejar. Es ms, si a cualquier automotriz se le ocurriera cambiar el funcionamiento interno de alguna de estas cosas, probablemente todos los conductores tendran que volver a aprender como funciona el nuevo componente interno para poder seguir manejando sin problemas. Por suerte esto no es as, ya que la complejidad interna del funcionamiento de un automvil est escondida de los conductores (usuarios). Para poder interactuar con el automvil, ste nos expone una interfaz sencilla y definida, que no cambia nunca por ms que cambien internamente el funcionamiento de sus componentes. Esta interfaz est compuesta por el volante, los pedales, la palanca de cambios, el asiento, etc. De esta forma decimos que el automvil ha encapsulado su complejidad interna.

POLIMORFISMO - Es la propiedad que tienen los objetos de permitir invocar genricamente un comportamiento (mtodo) cuya implementacin ser delegada al objeto correspondiente recin en tiempo de ejecucin -El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es as Ejemplo: Aqu tenemos un ejemplo prctico de la implementacin de polimorfismo en un diseo orientado a objetos. Por un lado tenemos la clase base Transporte, que posee los mtodos Avanzar y Frenar. Por otro lado tenemos tres clases distintas derivadas de la clase Transporte, cada una de las cuales podr sobrescribir la implementacin de los mtodos Avanzar y Frenar para que su comportamiento sea ms especfico.

Ahora bien, como todas heredan de la misma clase base, las clases derivadas pueden ser tratadas genricamente. Esto quiere decir que podramos tener un array que almacene objetos de tipo Transporte, y recorrerlo luego para llamar al mtodo Avanzar de cada uno. De esta forma, en tiempo de codificacin es imposible saber a qu mtodo Avanzar se est llamando en realidad (al del Auto? Al del caballo? Al del transbordador?), sino que esta decisin es tomada en tiempo de ejecucin en base al tipo particular de objeto que est instanciado. En pseudocdigo, esto se escribira de la siguiente manera: Definir arrayTransportes (3) de tipo Transporte arrayTransportes(1) = nuevo Automvil() //Un automvil ES UN TIPO DE transporte arrayTransportes(2) = nuevo Transbordador() //Un Transbordador ES UN TIPO DE transporte arrayTransportes(3) = nuevo Caballo() //Un Caballo ES UN TIPO DE transporte Por Cada (Transporte t en arrayTransportes)

t.Avanzar() t.Frenar() Fin RELACIONES Todo sistema abarca muchas clases y objetos Los objetos contribuyen en el comportamiento de un sistema colaborando entre si La colaboracin se logra a travs de las relaciones Existen dos tipos principales de relaciones Asociacin Agregacin RELACIONES DE ASOCIACIN Una asociacin es una conexin entre dos clases que representa una comunicacin Una asociacin puede tener nombre La comunicacin puede ser tanto uni como bi-direccional (por defecto) La multiplicidad es el nmero de instancias que participan en una asociacin

Potrebbero piacerti anche