0% encontró este documento útil (0 votos)
0 vistas4 páginas

Conceptos - Orientacion - Objetos

El documento describe los conceptos fundamentales de la programación orientada a objetos, incluyendo abstracción, modularidad, encapsulamiento, herencia y polimorfismo. La abstracción permite definir características esenciales de objetos, mientras que la modularidad facilita la modificación independiente de clases. El encapsulamiento oculta información de los objetos, la herencia permite crear jerarquías entre clases y el polimorfismo permite que un mismo comportamiento se implemente de diversas maneras.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas4 páginas

Conceptos - Orientacion - Objetos

El documento describe los conceptos fundamentales de la programación orientada a objetos, incluyendo abstracción, modularidad, encapsulamiento, herencia y polimorfismo. La abstracción permite definir características esenciales de objetos, mientras que la modularidad facilita la modificación independiente de clases. El encapsulamiento oculta información de los objetos, la herencia permite crear jerarquías entre clases y el polimorfismo permite que un mismo comportamiento se implemente de diversas maneras.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Conceptos de la orientación a Objetos

Abstracción.

La abstracción es el proceso en el cual separamos las propiedades más


importantes de un objeto, de las que no lo son. Es decir, por medio de la
abstracción definimos las características esenciales de un objeto del mundo real,
los atributos y comportamientos que lo definen como tal, para después modelarlo
en un objeto de software.

En el proceso de abstracción no debemos preocuparnos por la implementación de


cada método o atributo, solamente debemos definirlo de forma general. Por
ejemplo, supongamos que deseamos escribir un programa para representar el
sistema solar, por medio de la abstracción, podemos ver a éste sistema como un
conjunto de objetos, algunos de estos objetos son los planetas, que tienen un
estado, dado por sus características físicas, digamos, tamaño, masa, entre otras,
estos objetos tendrán también comportamientos: la translación y la rotación,
pueden mencionarse como los más evidentes.

Visualizar las entidades que deseamos trasladar a nuestros programas, en


términos abstractos, resulta de gran utilidad para un diseño óptimo de nuestro
software, ya que nos permite comprender más fácilmente la programación
requerida.

En la tecnología orientada a objetos la herramienta principal para soportar la


abstracción es la clase. Podemos definir a una clase como una descripción
genérica de un grupo de objetos que comparten características comunes, dichas
características se especificadas en sus atributos y comportamientos. En otras
palabras, una clase es un molde o modelo en donde se especifican las
características que definen a un objeto de manera general, a partir de una clase
podemos definir objetos particulares. En programación orientada a objetos se dice
que un objeto es una instancia de la clase, es decir un objeto, es un caso
particular del conjunto de objetos que comparten características similares,
definidas en la clase. 1

Un ejemplo servirá para clarificar estos conceptos. Definamos a la clase persona,


esta clase tendrá ciertos atributos, por ejemplo edad, sexo y nombre entre otros.
Las acciones o comportamientos que podemos definir para esta clase son, por
ejemplo, respirar, caminar, comer, etcétera. Estas son, para nuestro caso, las
características que definen a nuestra clase persona. Un objeto instanciado de esta
clase podría ser Juan Pérez, de sexo masculino y de 35 años de edad, quién se
encuentra caminando. Estos atributos son conocidos formalmente en
programación orientada a objetos como variables de instancia por que contienen
el estado de un objeto particular en un momento dado, en este caso Juan Pérez.

1
Luís Joyanes A. Programación Orientada a Objetos, página 28. Mc Grow Hill, 1998
Así mismo, los comportamientos son llamados métodos de instancia porque nos
muestran el comportamiento de un objeto particular de la clase.

Modularidad.

Dentro de la programación orientada a objetos, la modularidad juega un papel muy


importante. Una vez que hemos representado una situación del mundo real en un
programa, tenemos regularmente como resultado, un conjunto de objetos de
software que constituyen la aplicación. La modularidad, nos permite poder
modificar las características de la clase que definen a un objeto, de forma
independiente de las demás clases en la aplicación. En otras palabras, si nuestra
aplicación puede dividirse en módulos separados, normalmente clases, y estos
módulos pueden compilarse y modificarse sin afectar a los demás, entonces dicha
aplicación ha sido implementada en un lenguaje de programación que soporta la
modularidad. La tecnología orientada a objetos nos brinda esta propiedad para
hacer uso de ella en el software que desarrollemos. 2

Encapsulamiento.

También referido como ocultamiento de la información, el encapsulamiento es la


propiedad de la orientación a objetos que nos permite asegurar que la información
de un objeto le es desconocida a los demás objetos en la aplicación. Es muy
frecuente referirse a los objetos de software como cajas negras, esto se debe
principalmente a que no necesitamos, dentro de la programación orientada a
objetos, saber cómo esta instrumentado un objeto para que este interactúe con los
demás objetos. Generalmente una clase se define en dos partes, una interfaz por
medio de la cual los objetos que son instanciados de la misma interactúan con los
demás objetos en la aplicación, y la implementación de los miembros de dicha
clase (métodos y atributos). Retomando dos de los ejemplos anteriores,
supongamos que deseamos realizar una aplicación en donde deben interactuar el
objeto Mercedes Benz, instancia de la clase automóvil y el objeto Juan Pérez,
instancia de la clase Persona. Ambos objetos pueden ser vistos como cajas
negras las cuales se comunican por medio de una interfaz. El objeto Mercedes no
sabe cómo esta implementado el objeto Juan Pérez y viceversa. Concretamente,
el encapsulamiento permite a un objeto ocultar información al mundo exterior, o
bien restringir el acceso a la misma.

Una aplicación orientada a objetos está constituida, como mencionamos


anteriormente, por módulos. Estos módulos se implementan mediante clases, las
cuales representan, generalmente, abstracciones de objetos del mundo real. Es
por medio del encapsulamiento que podemos definir los atributos y los métodos de
una clase para que los objetos que se instancian de ésta trabajen como unidades
independientes de los demás objetos con los que interactúan. En otras palabras,

2
Ibid pg. 7
con el encapsulamiento ganamos modularidad, y además protegemos a los
objetos de ser manipulados de forma inadecuada por objetos externos.

Jerarquía o herencia

Una vez que hemos definido una clase, por ejemplo la clase bicicleta, con sus
atributos y métodos, tal vez necesitemos definir una nueva clase específica para
las bicicletas de carreras. Es obvio que ésta nueva clases compartirá elementos
en común con la clase bicicleta, es decir, la clase bicicleta de carreras será un
subconjunto de la clase bicicleta.

La tecnología orientada a objetos nos permite definir jerarquías entre clases y


jerarquías entre objetos. Las dos jerarquías más importantes que existen son la
jerarquía “es un” que precisa la generalización y especificación entre clases y la
jerarquía “es parte de” en la cual se delimita la agregación de objetos.

Comúnmente, a la jerarquía “es un” se le conoce como herencia. La herencia


simple es la propiedad que nos permite definir una clase nueva en términos de
una clase ya existente. Regresando al ejemplo, si podemos decir que una bicicleta
de carreras “es una” bicicleta, entonces podemos definir a la clase bicicleta de
carreras a partir de la clase bicicleta. Existirán casos en los cuales se necesite
definir una clase a partir de dos o más clases preexistentes, en este caso
estaremos hablando de herencia múltiple. 3

En cuanto a la jerarquía de agregación, también conocida como inclusión,


podemos decir que se trata del agrupamiento lógico de objetos relacionados entre
si dentro de una clase. Supongamos que tenemos que definir a la clase automóvil,
pero además hemos definido ya a la clase volante. Si podemos expresar la
oración, un volante “es parte de” un automóvil, entonces podemos instanciar un
objeto de la clase volante, para definir a la clase automóvil. En este caso, se dice
que automóvil es una agregación y volante es un agregado de automóvil.

Polimorfismo

Muchas veces es necesario que un mismo comportamiento o acción se realice de


diferentes maneras, por ejemplo, supongamos que deseamos implementar a la
clase mamíferos, supongamos también que uno de los métodos que deseamos
implementar para esta clase, es el que permita a tales mamíferos desplazarse de
forma natural. Nos encontraremos entonces con que para algunos mamíferos el
desplazamiento se realizará por medio de caminar, como es en el caso de las
personas, para otros el desplazamiento natural será nadar, como en el caso de los
delfines e inclusive para otros, el desplazamiento se logrará por medio de volar,

3
Ibid pg. 7
como sucede con los murciélagos. En otras palabras, un mismo comportamiento,
en este caso el desplazamiento, puede tomar diferentes formas.

Dentro de la programación orientada a objetos puede modelarse esta situación del


mundo real, en objetos de software, gracias al polimorfismo. El polimorfismo es la
propiedad por la cual una entidad puede tomar diferentes formas. Generalmente
está entidad es una clase, y la forma en que se consigue que tome diferentes
formas es por medio de nombrar a los métodos de dicha clase con un mismo
nombre pero con diferentes implementaciones.

Bibliografía

Luís Joyanes A. Programación Orientada a Objetos, página 28. Mc Grow Hill, 1998

También podría gustarte