Вы находитесь на странице: 1из 17

PRINCIPIOS DE LA PROGRAMACIÓN

ORIENTADA A OBJETOS

-1-
UNIVERSIDAD PRIVADA ANTENOR ORREGO
ESCUELA DE INGENIERIA DE COMPUTACIÓN Y SISTEMAS
PROGRAMACIÓN ORIENTADA A OBJETOS

PRINCIPIOS DE LA PROGRAMACIÓN
ORIENTADA A OBJETOS

APELLIDOS Y NOMBRES:

 CUEVA CHAMORRO, Diego


 DIAZ MAZABEL, Jorge
 MONTOYA MORENO, Johan

TRUJILLO, AGOSTO 2007

-2-
CONTENIDOS

I. RESUMEN……………………………………………….…………….04

II. PRINCIPIOS DE LA PROGRAMACION


ORIENTADA A OBJETOS…………………………………………..05

1. ¿QUE ES UN OBJETO?…………………………………...…….05

2. PROGRAMACION ORIENTADA A OBJETOS……………… 05

3. VENTAJAS DE LA P.O.O.………………………….……………08

4. PRINCIPIOS DE LA P.O.O………………………………..…….09

4.1 PRINCIPIO DE LA ABSTRACCION………………….…..09

4.2 PRINCIPIO DEL ENCAPSULAMIENTO…………………10

4.3 PRINCIPIO DEL POLIFORMISMO……………..………..11

4.4 PRINCIPIO DE LA JERARQUIA………………………….12

4.5 PRINCIPIO DE MODULARIDAD…………………………13

4.6 PRINCIPIO DE PASO DE MENSAJES………………….14

III. CONCLUSIONES……………………………………………………15

IV. REFERENCIAS BIBLIOGRÁFICAS……………………………….16

-3-
RESUMEN
Existen diferentes paradigmas o modelos para la tarea de programar, una de
ellas es la Programación Orientada a Objetos. Se trata de un enfoque de
basada en la forma en la que los hombres observamos nuestro mundo, en
“objetos”. Todo es objetos, un animal, una máquina, una persona, por lo tanto
el mundo está construido por una inmensa cantidad objetos. Todos estos
objetos se diferencian por sus características llamadas atributos y los
comportamientos que presentan. Esto nos lleva a ver un programa como el
conjunto de los objetos que se van interrelacionando para lograr un resultado
deseado, otro punto clave de la POO. Por ejemplo, tenemos una computadora,
ésta está constituida por sus objetos: Mouse, teclado, monitor, CPU, etc; si
quisiera jugar “Mario Bros.” tengo que hacer que estos objetos interactúen, así,
si quiero que Mario salte presiono la tecla “arriba” en el teclado, lo cual manda
un mensaje al CPU para que realice determinados proceso, no me importa qué
se lleva a cabo en este, ya sea entrar a un modo gráfico, trabajar con variables
de posiciones, etc., lo que me importa es que al solicitarle una acción éste
responda a lo que le pedí; el resultado sería ver cómo Mario salta en la pantalla
para coger alguna moneda. La P.O.O. tiene sus principios o cualidades para
trabajar que están presentes en el ejemplo anterior. Son: abstracción, paso de
mensajes, encapsulamiento, polimorfismo, modularidad y jerarquía, las cuales
serán expuestas a lo largo de la presente monografía.

-4-
PRINCIPIOS DE LA PROGRAMACION ORIENTADA A
OBJETOS

1.- ¿QUÉ ES UN OBJETO?

Sería un poco difícil hablar de Programación Orientada a Objetos sin tener por
lo menos una pequeña idea de qué es un “objeto”.Un objeto puede ser
cualquier entidad del mundo real; por ejemplo un mamífero, un monitor, un
menú en la computadora, la fecha, etc. Cada uno de estos objetos contiene
datos o información y puede llevar a cabo alguna función.

Los objetos se van conectando e interactuando, de forma que se va creando


todo lo que conocemos y vemos a nuestro alrededor.

Dentro de la computación (lo que nos interesa), (1) “un objeto es la


representación de un concepto para un programa”. Y tiene la información
necesaria para conocer las características de un objeto y las operaciones que
se le pueden hacer, aspectos que están encapsulados en el mismo objeto.

Los objetos que tienen propiedades similares están dentro de plantillas que son
clases, pero por ahora basta con tener el concepto de un objeto.

2.- PROGRAMACION ORIENTADA A OBJETOS

La Programación Orientada a Objetos es un paradigma o un modelo de


programación que utiliza objetos como bloque esencial de construcción. Al decir
que es un paradigma nos referimos a que son una serie de pautas y un estilo
para que sigan los programadores, así como la Programación Estructurada
tiene sus pautas.

(2) Es una serie de normas de realizar las cosas de manera que otras personas
puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el
código se pueda reutilizar.

-5-
Existen diferentes enfoques a la hora de la tarea de programar. El modelo al
cuál estábamos acostumbrados era el de Programación Estructurada, el cual
funcionaba bien para nuestros programas pequeños y poco complejos; pero el
siguiente paso o siguiente enfoque es el orientado a objetos, la que toma y re-
potencia muchos conceptos del enfoque estructurado.

Es una manera distinta de pensar en la programación, acercándonos más a


cómo son las cosas en la vida real. De esta forma nuestra lógica para
desarrollar los programas es más sencilla, vamos juntando los objetos como
bloques esenciales de construcción para edificar un edificio, los cuales
colaboran entre ellos para realizar tareas.

Si en la Programación Estructurada se mantiene separados los datos y


procedimientos, en cambio en la P.O.O. éstos se encuentran íntimamente
relacionados bajo el concepto de los “objetos”. Éstos se asemejan más a la
forma de pensar del hombre y no al de la máquina, debido a la forma racional
de pensar de los hombres y sus procesos como las abstracciones que hacen
en su mente; el hombre puede conocer muchos objetos que están a su
alrededor e utilizarlos, sin necesidad de saber exactamente que es lo que
sucede dentro de ellos para obtener los resultados que busca.

Es un paradigma que facilita la creación de buen software, ya que se presta a


un buen mantenimiento, se pueden hacer programas de gran extensión, y se
reutiliza el software. Los programas son escritos en términos de objetos,
propiedades y comportamientos.

Por mucho tiempo los programadores creaban software muy parecido uno de
otro que resolvían los mismos problemas repetitivamente. Para que los
esfuerzos de un programador pueda ser usado por otra persona es que se
utiliza la Programación Orientada a Objetos. Son normas para programar de
manera que otras personas puedan usar nuestro código, haciendo más fácil su
trabajo y dándole la característica de reutilizable al código.

-6-
(3) “El elemento básico de este paradigma no es la función (elemento básico de
la programación estructurada), sino un ente denominado objeto.” Cada objeto
proporciona un servicio o realiza una acción que es usada por otros objetos

Se podría ver a los objetos como veíamos a los métodos en la Programación


Estructurada, como pequeñas partes del programa que van dando solución a
pequeñas situaciones y que se van conectando para formar el programa en sí,
sólo que los objetos tienen otras propiedades y se prestan más para las
abstracciones y otras cosas.

Para tener una imagen de a qué se refiere la Programación Orientada a


Objetos pensemos en nuestros cuerpos. Veamos el cuerpo humano como el
conjunto de órganos que lo conforman, a los cuales podemos llamar objetos.
Cada uno realiza sus características o sus atributos, por ejemplo un órgano
puede tener color rojizo, ser grande o pequeño, estar enfermo, etc; y a la vez
cada uno tiene sus propias funciones o comportamientos como respirar en el
caso de los pulmones o generar movimiento en el caso de los músculos. Los
órganos se encuentran relacionados para cumplir con las funciones del cuerpo.
Nosotros sabemos qué es lo que hacen estos objetos, pero no sabemos cómo
lo hacen (sin referirnos a los conceptos de biología que se puedan tener), aún
así podemos usar estos objetos mandando mensajes desde nuestra cabeza;
como cuando queremos caminar, le decimos a los músculos de nuestras
piernas que se muevan, y nos hacen caso, más no nos preocupamos por
cuales músculos se contraen, cuales se relajan, por cuánto tiempo, etc., esas
funciones son propias del objeto y no necesitamos conocerlas (de otra forma
sería un verdadero problema caminar, con todas las acciones que tendríamos
que calcular). Además sabemos que el cuerpo humano está compuesto por
células en sus niveles más bajos, las cuales son objetos más pequeños,
también con sus funciones propias y atributos, que al juntarse van a ir
formando los órganos.

Puede parecer un poco confuso pero la Programación Orientada a Objetos


trabaja de esta forma. Un programa está hecho de muchos componentes u

-7-
objetos, cada uno jugando un rol diferente en el programa y que se pueden
interrelacionar entre ellos.

La Programación Orientada a Objetos se basa en cómo en el mundo real, los


objetos están compuestos por objetos más pequeños, los cuales se pueden
combinar. Este modelo de programación presenta muchos conceptos para
crear y usar objetos de forma flexible y fácil.

3.- VENTAJAS DE LA P.O.O.


(4) Entre las ventajas que presenta el paradigma de la P.O.O. tenemos:

 Uniformidad. Representar los objetos implica un análisis, diseño y


codificación de los mismos.

 Comprensión. Los datos de los objetos, así como sus procedimientos


están agrupados en clases, correspondiendo con las estructuras de
información del programa, haciendo un modelo ordenado y jerárquico.

 Flexibilidad. Como los procedimientos manipulan los datos, los cambios


que realicen a éstos puede afectar cualquier parte del programa donde
estos datos aparezcan.

 Estabilidad. Hay partes del programa que permanecen inalterable, ya


que hay objetos que permanecen constantes y otros que cambian
frecuentemente, para eso se aíslan los que cambien frecuentemente,

 Reusabilidad. Está basado en la reutilización de código. Se trata de


usar las definiciones de objeto de otros programas, si son compatibles
en su uso. Desde este punto de vista, el desarrollo de un programa
puede ser una simple combinación de objetos, los cuales se pueden
relacionar.

-8-
4.- PRINCIPIOS DE LA P.O.O.

Existen 6 principales principios de la Programación Orientada a Objetos:

4.1.- PRINCIPIO ABSTRACCIÓN

“Abstraer es suprimir u ocultar algunos detalles de un proceso o de un


elemento, para resaltar algunos aspectos, detalles o estructuras”
Ocultar parte de la información es una omisión voluntaria de detalles en el
desarrollo de un programa o una representación abstracta

La abstracción es la forma en que nuestra mente modela la realidad, formando


los objetos. Por eso se crea objetos en los programas que simulen los
comportamientos de los objetos del mundo real.

Nosotros no pensamos en las cosas que vemos como la unión de sus


componentes más pequeños; no vemos un carro como el conjunto de llantas,
motor, asientos, timón, espejos, etc., sino que lo vemos como la entidad
compleja que es, en eso se basa la abstracción. No nos interesa conocer los
detalles de cada uno de sus componentes o qué es lo que hace cada parte,
simplemente porque nos basta conocer el carro o el objeto superficialmente,
con tal que podamos interactuar con él y al hacerlo obtengamos una respuesta
para satisfacer nuestra necesidad; como desplazarnos rápidamente de un lugar
a otro, ante esta solicitud, el carro responde realizando el movimiento.

Cada objeto en el sistema puede realizar trabajos, informar y "comunicarse"


con otros objetos en el sistema sin revelar cómo se está implementado. Los
procesos, las funciones o los métodos pueden también ser abstraídos y cuando
lo están, una variedad de técnicas son requeridas para ampliar una
abstracción.

-9-
La abstracción humana se realiza de manera jerárquica. Cada sistema se va
dividiendo en sistemas más pequeños hasta ir llegando a los niveles más
simples, de esta forma se nos presenta una realidad mucho más ordenada y
entendible. Ésta es la forma de pensar de la P.O.O.

(5) Existen niveles en la abstracción, que son:


- Comunidad de objetos que interactúan : Hay líneas de comunicación y
cooperación
- Agrupación de objetos que trabajan juntos en una unidad: Se van
formando los Paquetes (en caso de Java)
- Interacción cliente-servidor : Los objetos se proporcionan servicios

4.2.- PRINCIPIO DE ENCAPSULAMIENTO

El “Encapsulamiento” le permite decidir al programador de objetos que


información dar a conocer y cual información ocultar al resto de objetos, no
olvidar que los objetos pueden estar conformados por otros objetos.

Los objetos suelen presentar sus métodos como interfaces públicas que es lo
que se le puede pedir al objeto y sus atributos como datos privados e
inaccesibles desde otros objetos. Así como dentro de una empresa, a los
empleados no se les dice toda la información respecto a la misma, ni se les
comunica de todos los procesos que se dan en ella; de ésta forma los objetos
no siempre muestran toda su información .

Lo que hacen los objetos generalmente es presentar a otros objetos sus


métodos o las acciones que realiza, para que éste pueda solicitarlas. Sin
embargo los atributos de un objeto, sus características, éstas quedan dentro de
ellos mismos, siendo inaccesible para otros objetos. De esta forma es difícil
que un objeto pueda cambiar los atributos de otro, desde fuera de él.

(6) Para permitir que otros objetos consulten o modifiquen los atributos de los
objetos, las clases suelen presentar métodos de acceso. De esta forma el

- 10 -
acceso a los datos de los objetos es controlado por el programador, evitando
efectos laterales no deseados, como cambios inesperados en los atributos de
un objeto, dando como consecuencia que sus procesos arrojen resultados
erróneos para lo que deseamos.

Con esto podemos decir que con el encapsulamiento de los datos se consigue
que las personas que utilizan un objeto se vean en la necesidad de comprender
únicamente su interfaz, cómo interactuar con ese objeto, no tomando interés en
cómo está implementado, y reduciendo la complejidad de utilización.

4.3.- PRINCIPIO DE POLIFORMISMO

En programación orientada a objetos se llama polimorfismo a la capacidad que


tienen objetos de diferentes clases de responder al mismo mensaje. Lo que
quiere decir es que puede haber muchos mensajes con el mismo nombre, en
diferente s clases. Cada clase responde al mensaje con su método o código
propio.

Un objeto pueda presentar diferentes comportamientos en función al contexto


en el que pueda estar trabajando; cuando se envía un dato a un objeto del que
no se sabe su tipo específico, se ejecuta el método adecuado de acuerdo con
su tipo.

(7) El nombre de “Poliformismo” viene de las muchas formas de responder al


mismo mensaje. En un sentido literal, significa la cualidad de tener más de una
forma. También se le llama el (8) “Fenómeno por el que, cuando se envía un
mensaje aun objeto del que no se sabe su tipo específico, se ejecuta el método
adecuado de acuerdo con su tipo.”

Se aplica igualmente a la propiedad de algunas operaciones de comportarse de


forma diferente en diferentes objetos. Por ejemplo, consideremos la sumar. El

- 11 -
operador + realiza la suma de dos números de diferente tipo. Además se puede
definir la operación de sumar dos cadenas mediante el operador suma.
El polimorfismo sólo es aplicable si cualquiera de los posibles tipos de objetos
que se invoquen tienen definida la operación empleada, y los tipos de datos de
entrada requeridos y los valores devueltos, más allá de cómo se empleen o
calculen, son compatibles entre sí.

4.4.- PRINCIPIOS DE LA JERARQUÍA

(9) “Nuestro mundo está organizado de una manera jerárquica, en un orden.


De esta forma, las clases dentro de un programa también se presentan
ordenadas en jerarquías, formándose los árboles de herencia.”

Por ejemplo, viendo en nuestro mundo, podemos tener como mascota un perro
“siberiano”, jerárquicamente éste estaría dentro del grupo de los canes o
perros, a la vez dentro de los mamíferos, dentro de los vertebrados, y así varios
niveles de jerarquía dentro de los cuales se encuentra.

La jerarquía se encuentra ligada a la “Herencia”. (10) “La herencia es la


propiedad que permite a los objetos construirse a partir de otros objetos.”
La utilidad de la herencia es que las clases hijas reciben propiedades de sus
clases padres, evitando la necesidad de repetir el código anterior, haciendo el
código reutilizable. Existen varias formas de determinar qué atributos y
comportamientos pueden heredar las clases hijas de su superclase. El propio
acto de tomar propiedades de su superclase se denomina “herencia”

Los objetos forman siempre una organización jerárquica, en el sentido de que


ciertos objetos son superiores a otros de cierto modo. Existen varios tipos tipos
de jerarquías: simples, cuando su estructura pueda ser representada por medio
de un "arbol", es decir, tienen solo una clase superior, padre superclase;
complejas, cuando un hijo puede tener varios padres (es algo más difícil de
manejar y Java no permite estos casos)

- 12 -
(11) La estructura jerárquica puede distinguirse en ella tres niveles:

-La raíz de la jerarquía. Se trata de un objeto único y especial. Este se


caracteríza por estar en el nivel más alto de la estructura y suele recibir un
nombre muy genérico, como por ejemplo objeto madre, autos, áreas; cualquier
nombre que represente el universo de todo lo que viene dentro de esa clase.

-Los objetos intermedios. Son aquellos que descienden directamente de la raíz


y que a su vez tienen descendientes. Representan conjuntos o clases de
objetos, que pueden ser muy generales o muy especializados, según la
aplicación. Reciben nombres genéricos que dicen qué conjunto de elementos
representan, como área_círculo, área_cuadrado,etc.

-Los objetos terminales. Son todos aquellos que descienden de una clase o
subclase y no tienen descendientes. Se les llama instancias o ítems

4.5.- PRINCIPIO DE MODULARIDAD

La modularidad permite al programador dividir su programa complejo en varios


módulos o partes diferentes. Cada uno resolverá una parte de un problema
grande, y después interactuarán todos los módulos, como si se armara un
rompecabezas. Se basa en la frase “divide y vencerás”. (12) “Cada una de las
cuales debe ser tan independiente como sea posible de la aplicación en sí y de
las restantes partes. Se debe tener en cuenta los conceptos asociados de
dependencia, acoplamiento, cohesión, interfaz, encapsulación y abstracción.”

Al partir el programa se disminuye su grado de dificultad para resolverlo, pues


ahora el problema más grande se ve como un conjunto de problemas más
pequeños. No sólo hace que resolvamos más fácilmente el problema, sino que
hace el programa generado más fácil de comprender para otra persona, y por
lo mismo, más fácil de darle mantenimiento o implementarlo. Cuando vemos un
programa dividido en módulos, podemos tener una idea de qué es lo que hace
cada parte, y de esta forma entenderlo bloque por bloque. En la Programación
Estructurada manejábamos el concepto de la modularidad en el momento de

- 13 -
trabajar con métodos o funciones, en la Programación Orientada a Objetos se
usa de manera similar, pero basado en el trabajo con los objetos y las clases.

4.6.- PRINCIPIO DE PASO DE MENSAJES

(13) Son el medio a través del cuál interactúan los objetos, estimulan la
ocurrencia de cierto comportamiento en el objeto receptor. Con el paso de
mensajes los objetos pueden solicitar a otros objetos que realicen alguna
acción o que modifiquen sus atributos. Junto con el paso de mensajes se
implementan llamadas a los métodos de un objeto, lo que nos permite hacer
que ese objeto realice determinada acción que está dentro de su
comportamiento.

En la programación Estructurada el paso de mensajes correspondía a las


funciones, ahora se extiende a los objetos. Al llamar a un objeto podemos
mandarle valores como número u otros para que realice un trabajo o
simplemente invocar una de sus acciones sin darle valores, ya que puede no
necesitarlos.
Por ejemplo, podemos mandar un mensaje a un objeto llamado “carro” para
que encienda el motor. Para eso llamamos a una funcione de ese objeto que se
podría llamar “encender_motor”. También podríamos poner la caja de cambios
en un determinado número. Haríamos un proceso similar, llamaríamos al
método “caja_cambios” pero esta vez le mandaríamos un valor o parámetro
como 2, o 5, que representaría en qué número queremos que se ponga la caja
de cambios; de esta manera estamos modificando los atributos del objeto
“carro”. En el programa en sí, el paso de parámetros tiene la siguiente forma:
“ objeto_receptor.operación(parámetros) ”

El paso de parámetros es el que mantiene comunicado todo un sistema


orientado a objetos. Al mandar un mensaje pedimos que se realice un acción,
sin preocuparnos en ese momento en los cálculos que se tendrán que llevar a
cabo para un proceso exitoso, solo pensando en qué datos es necesario
mandar a ser trabajados para obtener lo que queremos.

- 14 -
CONCLUSIONES

 La programación Orientada a Objetos es otra forma de ver la


programación, basándonos en la perspectiva que tenemos los humanos
de nuestro mundo, hecho en base a objetos que se interrelacionan. Es el
modelo más usado actualmente, hasta que se desarrolle uno nuevo que
satisfaga de mejor manera los requerimientos de software del futuro.

 Con este nuevo paradigma se pueden hacer programas más complejos,


pero a la vez más fácil de entender, permitiendo el trabajo en equipo y la
re-utilización del código, hecho por otra persona.

 No necesitamos comprender exactamente como funcionan todos los


objetos que participan en un programa, lo que prima en la Programación
Orientada a Objetos es la capacidad de interactuar de los objetos, la
posibilidad de responder ante una solicitud de acción. No nos importa
cómo se lleve a cabo una acción, lo que nos importa es que se nos
devuelva el resultado que queremos.

 Son los principios de la P.O.O. los que le dan la fuerza para ser el
paradigma actual, éstas características aseguran que hagamos un buen
uso de los objetos y nos dan facilidades para trabajar con ellos,
conocerlas bien significa una gran ventaja a la hora de programar.

- 15 -
REFERENCIAS

(1) Miguel Ángel Manzanedo del Campo, Guía de Iniciación al Lenguaje


JAVA, http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm, Leído
16.08.2007
(2) Miguel Angel Alvarez, ,¿Qué es la programacion orientada a objetos?,
http://www.desarrolloweb.com/articulos/499.php, Leído 16.08.2007
(3) Miguel Ángel Manzanedo del Campo, Guía de Iniciación al Lenguaje
JAVA, http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm, Leído
16.08.2007
(4) Universidad Distrital Francisco José de Caldas, Programación Orientada
a Objetos, http://ieee.udistrital.edu.co/concurso/programacion_orientada
_objetos/poo/intro.html#. Leído 19.08.2007
(5) Natividad Martinez Madrid, Introducción a la Programación Orientada a
Objetos, Archivo .pdf, Leído el 17.
(6) Miguel Ángel Manzanedo del Campo, Guía de Iniciación al Lenguaje
JAVA, http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm, Leído
17.08.2007
(7) Wikipedia, Polimorfismo (programación orientada a objetos),
http://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orienta
da_a_objetos), Leído 18.08.2007
(8) Juan Manuel Dodero, Universidad Carlos III de Madrid, Principios de la
Programación Orientada a Objetos, 2002, Archivo .pdf, Leído el
16.08.2007
(9) Miguel Ángel Manzanedo del Campo, Guía de Iniciación al Lenguaje
JAVA, http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm, Leído
16.08.2007
(10) Pablo Alvarez Mántaras, Lenguajes de Programación, conceptos de
programación orientada a objetos, http://programarenc.webcindario.com/
Cplus/capitulo1.htm, Leído 15.08.2007
(11) Monografías, Programación Orientada a Objetos Sistemas de
Procesamiento de Datos, http://www.monografias.com/trabajos/
objetos/objetos.shtml, Leído 18.08.2007

- 16 -
(12) Arbis Percy Reyes Paredes, Conceptos y principios orientado a objetos
http://www.elguille.info/colabora/NET2005/Percynet_Conceptos
yprincipiosorientadoaobjetos.htm, Leído 17.08.2007
(13) Miguel Ángel Manzanedo del Campo, Guía de Iniciación al Lenguaje
JAVA, http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm, Leído
16.08.2007

- 17 -