Anda di halaman 1dari 5

Fundamentos del Enfoque orientado a Objetos.

El Enfoque Orientado a Objeto se basa en cuatro principios que constituyen la base de todo
desarrollo orientado a objetos. Estos principios son: la Abstraccin, el Encapsulamiento, la
Modularidad y la Herencia.

Fundamento 1: Abstraccin

Es el principio de ignorar aquellos aspectos de un fenmeno observado que no son relevantes,


con el objetivo de concentrarse en aquellos que si lo son. Una abstraccin denota las caractersticas
esenciales de un objeto (datos y operaciones), que lo distingue de otras clases de objetos. Decidir el
conjunto correcto de abstracciones de un determinado dominio, es el problema central del diseo
orientado a objetos.
Los mecanismos de abstraccin son usados en el EOO para extraer y definir del medio a
modelar, sus caractersticas y su comportamiento. Dentro del EOO son muy usados mecanismos de
abstraccin: la Generalizacin, la Agregacin y la clasificacin.
La generalizacin es el mecanismo de abstraccin mediante el cual un conjunto de clases de objetos
son agrupados en una clase de nivel superior (Superclase), donde las semejanzas de las clases
constituyentes (Subclases) son enfatizadas, y las diferencias entre ellas son ignoradas. En consecuencia,
a travs de la generalizacin, la superclase almacena datos generales de las subclases, y las subclases
almacenan slo datos particulares.
La especializacin es lo contrario de la generalizacin. Por ejemplo; La clase Mdico es una
especializacin de la clase Persona, y a su vez, la clase Pediatra es una especializacin de la superclase
Mdico.
La agregacin es el mecanismo de abstraccin por el cual una clase de objeto es definida a partir de sus
partes (otras clases de objetos). Mediante agregacin se puede definir por ejemplo un computador, por
descomponerse en: la CPU, la ULA, la memoria y los dispositivos perifricos. El contrario de
agregacin es la descomposicin.
La clasificacin consiste en la definicin de una clase a partir de un conjunto de objetos que tienen un
comportamiento similar. La ejemplificacin es lo contrario a la clasificacin, y corresponde a la
instanciacin de una clase, usando el ejemplo de un objeto en particular.

undamento 2: Encapsulamiento
Es la propiedad del EOO que permite ocultar al mundo exterior la representacin interna del
objeto. Esto quiere decir que el objeto puede ser utilizado, pero los datos esenciales del mismo no son

conocidos fuera de l. La idea central del encapsulamiento es esconder los detalles y mostrar lo
relevante. Permite el ocultamiento de la informacin separando el aspecto correspondiente a la
especificacin de la implementacin; de esta forma, distingue el "qu hacer" del "cmo hacer". La
especificacin es visible al usuario, mientras que la implementacin se le oculta. El encapsulamiento en
un sistema orientado a objeto se representa en cada clase u objeto, definiendo sus atributos y mtodos
con los siguientes modos de acceso:
Pblico (+): Atributos o Mtodos que son accesibles fuera de la clase. Pueden ser llamados por
cualquier clase, aun si no est relacionada con ella.
Privado (-): Atributos o Mtodos que solo son accesibles dentro de la implementacin de la clase.
Protegido (#): Atributos o Mtodos que son accesibles para la propia clase y sus clases hijas
(subclases).
Los atributos y los mtodos que son pblicos constituyen la interfaz de la clase, es decir, lo que
el mundo exterior conoce de la misma. Normalmente lo usual es que se oculten los atributos de la clase
y solo sean visibles los mtodos, incluyendo entonces algunos de consulta para ver los valores de los
atributos. El mtodo constructor (Nuevo, New) siempre es Pblico.

Fundamento 3: Modularidad
Es la propiedad que permite tener independencia entre las diferentes partes de un sistema. La
modularidad consiste en dividir un programa en mdulos o partes, que pueden ser compilados
separadamente, pero que tienen conexiones con otros mdulos. En un mismo mdulo se suele colocar
clases y objetos que guarden una estrecha relacin. El sentido de modularidad est muy relacionado
con el ocultamiento de informacin.

Fundamento 4: Herencia
Es el proceso en el cual un objeto de una clase adquiere propiedades definidas en otra clase que lo
preceda en una jerarqua de clasificaciones. Permite la definicin de un nuevo objeto a partir de otros,
agregando las diferencias entre ellos (Programacin Diferencial), evitando repeticin de cdigo y
permitiendo la reusabilidad.
Las clases heredan los datos y mtodos de la superclase. Un mtodo heredado puede ser sustituido por
uno propio si ambos tienen el mismo nombre. La herencia puede ser simple (cada clase tiene slo una
superclase) o mltiple (cada clase puede tener asociada varias superclases). La clase Docente y la clase
Estudiante heredan las propiedades de la clase Persona (superclase, herencia simple). La clase
Preparador (subclase) hereda propiedades de la clase Docente y de la clase Estudiante (herencia
mltiple).

Fundamento 5: Polimorfismo

Es una propiedad del EOO que permite que un mtodo tenga mltiples implementaciones, que
se seleccionan en base al tipo objeto indicado al solicitar la ejecucin del mtodo. El polimorfismo
operacional o Sobrecarga operacional permite aplicar operaciones con igual nombre a diferentes clases
o estn relacionados en trminos de inclusin. En este tipo de polimorfismo, los mtodos son
interpretados en el contexto del objeto particular, ya que los mtodos con nombres comunes son
implementados de diferente manera dependiendo de cada clase.
Por ejemplo, el rea de un cuadrado, rectngulo y crculo, son calculados de manera distinta; sin
embargo, en sus clases respectivas puede existir la implementacin del rea bajo el nombre comn
rea. En la prctica y dependiendo del objeto que llame al mtodo, se usar el cdigo correspondiente.
Ejemplos:
Superclase: Clase Animal.
Subclases: Clases Mamfero, Ave, Pez.
Se puede definir un mtodo Comer en cada subclase, cuya implementacin cambia de acuerdo a
la clase invocada, sin embargo el nombre del mtodo es el mismo.
Mamifero.Comer Ave.Comer Pez.Comer
Otro ejemplo de polimorfismo es el operador +. Este operador tiene dos funciones diferentes de
acuerdo al tipo de dato de los operandos a los que se aplica. Si los dos elementos son numricos, el
operador + significa suma algebraica de los mismos, en cambio si por lo menos uno de los operandos
es un String o Carcter, el operador es la concatenacin de cadenas de caracteres.

Caractersticas del Enfoque Orientado a Objetos.

Las caractersticas siguientes son las ms importantes:


Abstraccin: Denota las caractersticas esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede
realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin
revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden
tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una
abstraccin.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.

Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes
del sistema. Algunos autores confunden este concepto con el principio de ocultacin, principalmente
porque se suelen emplear conjuntamente.
Modularidad: Se denomina Modularidad a la propiedad que permite subdividir una aplicacin en partes
ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible
de la aplicacin en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero
tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la
Modularidad de diversas formas.
Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de
objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la
clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga
derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su
estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras
inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan
esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y
limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de
objetos.
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 lasobrecarga de operadores de C++.
Herencia: Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que
pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los
objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden
compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse
habitualmente agrupando los objetos en clases y estas en rboles o enrejados que reflejan un
comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hay herencia
mltiple.
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.

Anda mungkin juga menyukai