You are on page 1of 9

PROGRAMACIN ORIENTADA A

OBJETOS
I.

INTRODUCCIN:
Antes de empezar a desarrollar las caractersticas propias de la
programacin orientada aobjeto, conviene hacer una revisin
de alto nivel de la programacin, sus fases y sus diferentes
mtodos.
En el proceso de desarrollo de un sistema de informacin (un
programa, software, en general) hay una serie de etapas o
fases en las que la programacin como tal es una de ellas, ni
tan siquiera la ms importante. Hay diferentes modelos de
desarrollo en los que se definen esas fases o etapas antes
comentadas; uno de ellos es el mtodo en cascada (waterfall)
que nos servir como gua en el desarrollo de estas ideas.
Segn este modelo, a grandes rasgos, el desarrollo software
consta de las siguientes fases:
Anlisis: Esta es una de las fases ms importantes
puesto que se trata de definir y analizar el problema en
su totalidad. En general, se trata de entender el
enunciado

del

problema.

Evidentemente,

para

una

resolucin correcta (eficaz y eficiente) de un problema lo


mejor es conocerlo.

Pgina 8

Diseo: Junto con la anterior, la ms importante y


consiste en, dado el anlisis anterior, disear una
solucin del problema. Se tratara de definir los mdulos,
patrones, algoritmos, etc. que nos ayudaran a su
solucin. Entre esta fase y la anterior, se debera
consumir un 70-80% del tiempo del proyecto.
Implementacin:

Sera

un

equivalente

la

programacin. En este caso, el diseo anterior se


traducira a un lenguaje de programacin concreto; en
esta fase es donde realmente se programa (codifica).
Pruebas: Periodo en el que el producto se somete a
diferentes tipos de pruebas: de sistema, de integracin,
etc.
Implantacin: Proceso de puesta en produccin del
producto.
Mantenimiento:

Realizar

mejoras

varias

sobre

el

producto desde el punto de vista tecnolgico, funcional,


etc.
Normalmente, siempre

nos

codificacin/implementacin

centramos
pero,

en

como

la

fase de

vemos,

este

proceso es mucho ms complejo de lo que podramos


pensar.
Cuando se decide iniciar un desarrollo, lo primero que se
debe decidir es el paradigma de trabajo. La eleccin del
paradigma marca significativamente la forma de anlisis y
diseo de la solucin del problema. As un mismo problema
se podra abordar usando un paradigma procedural clsico
Pgina 8

(programado en Pascal o C, por ejemplo) o bien un


paradigma orientado a objetos (el que usaremos en este
curso). La eleccin del paradigma marca la eleccin del
lenguaje. As, si hemos elegido un paradigma procedural
para

resolver

el

problema,

lo

normal

es

que

lo

implementemos en un lenguaje tpicamente procedural (C o


PASCAL, por ejemplo); por otro lado, si elegimos un
paradigma orientado a objetos es normal elegir un
lenguaje orientado a objetos (C++ o Java, por ejemplo).
Ocurre bastantes veces que se cree que un programador de
C o Pascal o cualquier otro lenguaje de programacin
procedural pueden convertirse en un programador de C++,
Object Pascal o Java sin ms que aprender una serie de
nuevas estructuras e instrucciones. Por desgracia, esto no es
as en absoluto; el estudiar un lenguaje orientado a objetos
va ms all que aprender otro lenguaje ms. En realidad,
el cambio es ms profundo y se trata del estudio de un
nuevo paradigma, esto es, una nueva forma de abordar los
problemas y una manera de implementar esas soluciones
mediante el lenguaje de programacin Java.

II.

LA ORIENTACIN A OBJETOS:
La orientacin a objetos promete mejoras de amplio alcance en
la forma de diseo, desarrollo y mantenimiento del software
ofreciendo una solucin a largo plazo a los problemas y
preocupaciones que han existido desde el comienzo en el
desarrollo de software:

Pgina 8

La

falta

de

portabilidad

del

cdigo

su

escasa

reusabilidad.
Cdigo que es difcil de modificar.
Ciclos de desarrollo largos.
Tcnicas de codificacin no intuitivas.
Un lenguaje orientado a objetos ataca estos problemas. Tiene
tres caractersticas bsicas: debe estar basado en objetos,
basado en clases y capaz de tener herencia de clases. Muchos
lenguajes cumplen uno o dos de estos puntos; muchos menos
cumplen los tres. La barrera ms difcil de sortear es
usualmente la herencia. El concepto de programacin orientada
a objetos (POO) no es nuevo.

III.

CARACTERISTICAS:
LA 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.
LA ENCAPSULACIN: Es la propiedad de la POO 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.
Pgina 8

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

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).

LA MODULARIDAD: Es la propiedad que permite tener


independencia entre las diferentes partes de un sistema.
La modularidad consiste en dividir un programa en
mdulos

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

Pgina 8

modularidad est muy relacionado con el ocultamiento de


informacin.

LA HERENCIA: Es el proceso mediante 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

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).

POLIMORFISMO: Es una propiedad de la POO 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

Pgina 8

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.

IV.

OBJETO:
El elemento fundamental de la POO es, como su nombre indica,
el objeto. Podemos definir un objeto como un conjunto complejo
de datos y programas que poseen estructura y forman parte de
una organizacin. En este caso las estructuras de datos y los
algoritmos usados para manipularlas estn encapsulados en
una idea comn llamada objeto.
Esta definicin especifica dos propiedades caractersticas de
los objetos:
En primer lugar, un objeto no es un dato simple, sino que
contiene en su interior cierto nmero de componentes
bien estructurados.
En segundo lugar, cada objeto no es un ente aislado, sino
que forma parte de una organizacin jerrquica o de otro
tipo.
Cada objeto puede ser considerado como un proveedor de
servicios utilizados por otros objetos que son sus clientes. Cada
objeto puede ser a la vez proveedor y cliente. De all que un
programa pueda ser visto como un conjunto de relaciones
entre proveedores clientes. Los servicios ofrecidos por los
objetos son de dos tipos:
Pgina 8

1.- Los datos, que llamamos atributos.


2.- Las acciones o funciones, que llamamos mtodos.

V.

CLASE:
La clase puede definirse como la agrupacin o coleccin de
objetos

que

comparten

una

estructura

comn

un

comportamiento comn. Es una plantilla que contiene la


descripcin general de una coleccin de objetos. Consta de
atributos y mtodos que resumen las caractersticas y el
comportamiento comunes de un conjunto de objetos. Todo
objeto (tambin llamado instancia de una clase), pertenece a
alguna clase. Mientras un objeto es una entidad concreta que
existe en el tiempo y en el espacio, una clase representa solo
una abstraccin. Todos aquellos objetos que pertenecen a la
misma clase son descritos o comparten el mismo conjunto de
atributos y mtodos. Todos los objetos de una clase tienen el
mismo formato y comportamiento, son diferentes nicamente
en los valores que contienen sus atributos. Todos ellos
responden a los mismos mensajes.

CLASE

OBJETO

ATRIBUTOS.

VALORES DE LOS ATRIBUTOS.

METODOS.

COMPORTAMIENTO.

Persona

Persona

Atributos.

Atributos.

dni.

12345678

nombres.

Jos.
Pgina 8

apellidos.

Ruiz.

edad.

28.

cantidad de sueldo.

700.00

Mtodos.

Mtodos.

modificar sueldo.

modificar sueldo.

realizar prstamo.

realizar prstamo.

BIBLIOGRAFIA
http://webdelprofesor.ula.ve/ingenieria/hyelitza/materias/programa
cion2/oxo/ProfaYusneyi_Tema8_POOClasesyObjetos.pdf
http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf
http://kataix.umag.cl/~ruribe/Utilidades/Introduccion%20a%20la
%20Programacion%20Orientada%20a%20Objetos.pdf
http://dis.um.es/~jfernand/0506/dai/poo.pdf

Pgina 8