Sunteți pe pagina 1din 20

Programacin orientada a objetos

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Programacin orientada a objetos


Libro de contenido No. 1

Programacin orientada a objetos

Carlos Cardona
Experto en contenido

Albenis Corts
Asesora Pedaggica

Hector Jair Neira

Juan Carlos Velsquez


Corrector de estilo

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Diseador Grfico

Programacin orientada a objetos

CONTENIDO
1. OBJETOS Y CLASES........................................................................................................... 4
1.1 Introduccin ..................................................................................................................... 4
1.2 Criterios de calidad .......................................................................................................... 4
1.2.1 Tcnicas de programacin y sus principales inconvenientes .................................... 4
1.2.2 Factores de calidad ................................................................................................... 5
1.3 Objetos ............................................................................................................................ 9
1.3.1 Definicin de objetos ................................................................................................. 9
1.3.2 Formacin de los objetos .......................................................................................... 9
1.3.3 Identificacin de objetos. ......................................................................................... 10
1.4 Clases y su relacin con los objetos .............................................................................. 12
1.4.1 Determinacin de las clases.................................................................................... 12
1.4.2 Representacin de la clase y sus instancias ........................................................... 13
1.4.3 Nombres de las clases ............................................................................................ 14
1.5 Modelamiento UML ....................................................................................................... 14
1.5.1 Representacin de objetos ...................................................................................... 14
1.5.2 Representacin de clases ....................................................................................... 16
1.6 Diagramas de clases ..................................................................................................... 17
1.7 Modificadores de acceso ............................................................................................... 19
Enlaces ................................................................................................................................ 20

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Bibliografa........................................................................................................................... 20

Programacin orientada a objetos

1. OBJETOS Y CLASES
1.1 Introduccin
Sin lugar a dudas, en el desarrollo de aplicaciones o programas es usual que las
caractersticas u objetivos ltimos del mismo cambien con frecuencia por diferentes razones;
en el pasado, estos cambios imprevistos hacan que las empresas incurrieran en gastos que
acarreaban grandes sumas de dinero.

Hoy en da, las empresas buscan reducir estos gastos y facilitar la reutilizacin de programas
minimizando el trabajo requerido al agregarle al cdigo funcionalidades nuevas. Es as como
se han desarrollado criterios de calidad que permiten establecer parmetros mnimos
correspondientes a un programa para que cumpla con las expectativas futuras del mismo.

En este captulo se muestran estos criterios y a la vez se establecen parmetros y conceptos


bsicos para la programacin orientada a objetos, como lo son las clases, los objetos y el
modelamiento UML.

1.2 Criterios de calidad


Como primera medida, es importante recordar algunas tcnicas de programacin existentes
y los problemas que stas presentan a los programadores.

1.2.1 Tcnicas de programacin y sus principales inconvenientes

Programacin no estructurada

Esta tcnica se caracteriza porque busca que el programa principal opere directamente sobre

aumenta de manera considerable al pretender ofrecer funcionalidades nuevas.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

los datos globales. Los principales problemas se presentan cuando el cdigo del programa

Programacin orientada a objetos

Su principal falencia es la necesidad de repetir varias veces una misma secuencia de


instrucciones, impidiendo o dificultando la modificacin del cdigo para corregir posibles
errores o para cambiar caractersticas del mismo.

Programacin procedimental

Ofrece una tcnica para extraer las secuencias de instrucciones repetitivas, darles un
nombre, permitir que se ejecuten mediante un llamado en determinado punto del cdigo y
volviendo a este mismo punto despus de realizar determinadas funciones.

De manera general, esta tcnica facilita la tarea de codificacin y la identificacin de las


lneas y secuencias de cdigo, sin embargo, no facilita de ninguna manera la reutilizacin
debido a que en implementaciones posteriores es necesario copiar el cdigo de una parte a
otra.

Programacin modular

Esta tcnica facilita la reutilizacin debido a la posibilidad de agrupar en mdulos


procedimientos cuya funcin es similar, cada uno con sus respectivos datos. De esta manera
cada mdulo puede manipular su estado interno con llamadas a sus procedimientos.

1.2.2 Factores de calidad


En el siguiente esquema se pueden visualizar, de manera rpida, los diferentes criterios de
calidad que se deben tener en cuenta cuando se desarrollan cdigos, y las diversas

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

clasificaciones que se les pueden dar a los mismos:

Programacin orientada a objetos

Factores
internos

Factores
externos

Modularidad

Reutilizacin del cdigo


Escalabilidad de la
aplicacin
Portabilidad
Usabilidad
Funcionalidad
Precisin
Robustez

Estos factores se describen a continuacin:

Los factores de calidad internos normalmente no son apreciados por los usuarios
finales, sin embargo, stos delimitan y rigen directamente a los factores externos.
Entre estos se encuentra la modularidad.

Modularidad:
Un mtodo de desarrollo de software es modular si ayuda a disear programas que puedan
implementar, de manera coherente, elementos de programacin autnomos.

Los factores de calidad externos son evaluados por el usuario final. Algunos de estos
factores son explicados a continuacin.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Esta caracterstica ser estudiada con mayor profundidad ms adelante.

Programacin orientada a objetos

Reutilizacin de cdigo
Si una aplicacin incorpora estructuras, partes de cdigo que haban sido empleadas
inicialmente en otras aplicaciones o que se van a utilizar en otros programas, es posible
hablar de reutilizacin de cdigo.

Este concepto es uno de los factores principales de calidad que ha potenciado de manera
importante la orientacin a objetos, teniendo en cuenta que entre ms sencillas sean las
estructuras de programacin, ms viable ser la posibilidad de reutilizacin de las mismas.

Escalabilidad de la aplicacin
Si se pretende ampliar un programa pequeo el procedimiento se torna sencillo de
desarrollar, sin embargo, cuando estas aplicaciones crecen, cualquier modificacin llega a
ser demasiado problemtica.

Basados en lo anterior, se habla de dos principios que se deben tener en cuenta para facilitar
estos posibles cambios, y que no son ms que las caractersticas que determinan la
escalabilidad:

ESCALABILIDAD
(Facilidad para cambiar una aplicacin )
Simplicidad en el diseo

Descentralizacin

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Una arquitectura simple ser Con modos ms autnomos, es


siempre mas fcil de cambiar.
probable que al realizar un cambio
los mdulos que necesitan ser
cambiados sea mnimos.

Programacin orientada a objetos

Portabilidad del cdigo


Es comn que se presenten incompatibilidades entre plataformas relacionadas a las
caractersticas del sistema en el que se ejecuta la aplicacin, por tal motivo, es importante
separar claramente las partes dependientes de las independientes.

A continuacin se muestra un esquema que muestra una manera interesante de visualizar


una aplicacin con el fin de favorecer la portabilidad.

INTERFAZ GRFICA

LGICA DEL PROGRAMA

Arquitectura

Sistema operativo

Acceso a datos

Usabilidad
Este tem no es indispensable, sin embargo, facilita a los usuarios la interaccin con el
programa creando una sensacin de mayor calidad. En el momento de disear un programa
es importante tener en cuenta que ste sea fcil de aprender por parte de los usuarios. La

usuarios potenciales.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

orientacin a objetos ofrece metodologas que permiten adaptar el diseo a la tipologa de

Programacin orientada a objetos

1.3 Objetos
Para tener claro el contexto, hay que tener en cuenta que la programacin orientada objetos
es muy parecida a la manera en que se desarrollan las cosas en el diario vivir.
Un programa bajo esta tcnica est formado por una coleccin de objetos que se encuentran
intercomunicados, buscando que representen y solucionen un problema determinado.
Grficamente, un programa de este tipo tendr la siguiente estructura:

objeto 1

objeto 3

objeto 4

objeto 7

objeto 2

objeto 5

objeto 6

objeto 8

1.3.1 Definicin de objetos


Un objeto es un ente, una entidad, un sujeto o un elemento que se puede encontrar en el
dominio del problema, es una parte importante de la situacin o conflicto que se presenta en
el entorno empresarial, organizacional o institucional al que se quiere dar solucin mediante
la computadora.

Los objetos estn formados por dos elementos as:

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

1.3.2 Formacin de los objetos

FORMACIN DE UN OBJETO

Programacin orientada a objetos

Representan su estructura
Datos
Atributos que describen su
forma o apariencia
Implementan las funciones
propias del comportamiento
del objeto
Mtodos
Manipulan datos para hacer
la entrada, proceso y salida
de los mismos

1.3.3 Identificacin de objetos


Cuando se requiere realizar un programa, en el momento en el que se analiza el problema, la
unidad elemental constituir el objeto, es decir, se estudia el problema y se identifican los
objetos involucrados y sus relaciones.

A manera de ejemplo, se dar solucin a un problema, paso a paso, y se har especial


hincapi en la descripcin de los objetos.

Ejemplo:

Definicin del problema

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Elaborar un programa que permita calcular el sueldo de los empleados de una compaa.

10

Programacin orientada a objetos

Anlisis del problema

Planteamiento del problema


La compaa de telecomunicaciones X&Y cuenta en su nmina con varios empleados; para
cada uno se conoce el nombre, el nmero de horas trabajadas y la cuota que se le paga por
hora trabajada. Cada quincena se requiere emitir un cheque que contenga datos como: el
nombre del trabajador y el sueldo que se le debe pagar.

El sueldo se calcula multiplicando las horas trabajadas por la cuota que se les cancela por
hora.

A manera de resumen, el proceso se desarrolla de la siguiente manera:

Salidas
(Informacin que se
quiere imprimir)
Entradas
(Datos que se deben
leer)
Proceso

Nombre
Sueldo

Nombre
Horas trabajadas
Cuota por hora
Calcular el sueldo
=

(Pasos a seguir)

Al estudiar el caso expuesto, es posible distinguir y determinar el objeto o coleccin de


objetos que el programa debe representar y manejar.
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Identificar objetos

11

Programacin orientada a objetos

La metodologa para identificar los objetos consiste en buscar los sustantivos presentes en la
especificacin, debido a que estos representan los objetos. En el problema analizado se
menciona un sustantivo: los empleados.

De esta manera se tiene una coleccin de objetos iguales, es decir, un conjunto de


empleados. Cada empleado o cada objeto tiene la misma estructura de datos y el mismo
comportamiento de los dems.

1.4 Clases y su relacin con los objetos

Una clase es una representacin abstracta que permite describir a un conjunto de objetos, es
decir, hace referencia a un tipo de dato abstracto que representa a un conjunto de objetos
con la misma estructura y el mismo comportamiento, es decir que son la misma cosa y hacen
lo mismo.

La clase constituye el elemento central del proceso de diseo de un programa, debido a que
un conjunto de objetos iguales debe ser representado en forma abstracta por una clase, que
actuar como una plantilla o un molde para crear los objetos que sean necesarios.

1.4.1 Determinacin de las clases


Cuando se identifican los objetos del problema, se puede realizar el diseo de clases
(concepto que se ver ms adelante) para lo cual es necesario enumerar las clases que
contiene el problema.
De esta manera, retomando los objetos que se analizaron en el ejemplo anterior, se
convierten en clases, que como ya se mencion, son la representacin abstracta de un

de empleados, y se tiene que dicha coleccin se representa como una clase.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

conjunto de objetos. As pues, en el problema mencionado, se tiene un conjunto de objetos

12

Programacin orientada a objetos

1.4.2 Representacin de la clase y sus instancias


En el momento de desarrollar el programa, se debe definir una clase como un nuevo tipo de
dato abstracto, y con base en sta, vamos a generar instancias u ocurrencias especficas
para dicha clase, cada una de estas instancias sern los objetos que representarn a cada
uno de los empleados presentes en la aplicacin. Ms adelante se muestra cmo se
representa de forma grfica esta relacin entre una clase y sus respectivas instancias, sin
embargo, a continuacin, se muestra un ejemplo que ayuda a tener ms claro este concepto.
RBOL GENRICO

Derivado de

Pino

Derivado de

Roble

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Fresno

Libro de Referentes

Derivado de

13

Programacin orientada a objetos

Como se puede ver, la clase rbol estn determinada por un conjunto dado que tiene
propiedades en comn. Cada objeto de esta clase tendr sus propios valores.

1.4.3 Nombres de las clases


Cada clase debe tener un identificador que sea vlido. Por convencin, los asignadores de
una clase comienzan con mayscula.

1.5 Modelamiento UML


La programacin orientada a objetos se caracteriza, entre otras cosas, por ser una
metodologa de diseo que se puede aplicar a muchos dominios. Es por esto que se han
dado muchos desarrollos orientados a definir un lenguaje o formalismo que facilite la
modelizacin de problemas para poder tratarlos con esta metodologa sin importar el marco
en el que se desarrolle el problema.

Entre estos desarrollos se encuentra el modelamiento UML, ste permite describir y construir
modelos que representan sistemas, teniendo como base el concepto de la orientacin a
objetos con unas caractersticas de representacin grfica que facilitan notablemente el
proceso de describir y entender un diseo utilizando POO. ste lenguaje ser el que
describir y permitir definir, de aqu en adelante, las clases y los objetos que se utilicen en
las diferentes aplicaciones.

1.5.1 Representacin de objetos


Un objeto se representa con un rectngulo redondeado y est formado por dos partes: una
se compone de los datos que representan la estructura de un objeto, mientras la otra, tiene

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

los mtodos que implementan las operaciones que se deben realizar sobre los datos, as:

14

Programacin orientada a objetos

objeto

dato1
dato2
dato3
--mtodo1()
--mtodo2()
datoN
mtodo3()
-----

De tal manera que el ejemplo de los empleados


tendramos:
mtodo()

objetoEmpleado

objetoEmpleado

objetoEmpleado

Nombre

Nombre

Nombre

Juan

Pedro

Mateo

Horas trabajadas

Horas trabajadas

Horas trabajadas

40

45

55

Cuota por hora

Cuota por hora

Cuota por hora

5.000

10.000

Sueldo

Sueldo

Sueldo

200.000

450.000

440.000

80.000

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

---

15

Programacin orientada a objetos

1.5.2 Representacin de clases


Una clase se representa mediante un rectngulo, as:
Clase

De manera que para el ejemplo ser:


Empleado

Y finalmente, nuestra clase con sus respectivas instancias se ver de la forma:

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Empleado

16

Programacin orientada a objetos

objetoEmpleado

objetoEmpleado

objetoEmpleado

Nombre

Nombre

Nombre

Juan

Pedro

Mateo

Horas trabajadas

Horas trabajadas

Horas trabajadas

40

45

55
---

Cuota por hora

Cuota por hora

Cuota por hora

5.000

10.000

80.000

La lnea punteada permite indicar que hay una relacin de instancia de u objeto de, por
Sueldo
SueldoEmpleado.
ejemplo, Mateo es
una instancia, objeto Sueldo
u ocurrencia de la clase denominada
200.000

450.000

440.000

1.6 Diagramas de clases


Cuando se tienen definidos los datos y los mtodos que se necesitan, el siguiente paso
consiste en disear la estructura de la clase, que al mismo tiempo se convierte en el
diagrama de clase.

El formato es el siguiente:
NombreClase
- dato1

- dato3
- datoN

Todos los Derechos Reservados 2010. Propiedad de Compensar


Unipanamericana institucin universitaria
- mtodo1()
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

- mtodo2()

Libro de Referentes

- dato2

17

Programacin orientada a objetos

Como se puede observar se tienen los siguientes campos:

Nombre Clase: Indica el nombre de la clase.

dato1, dato2, dato3, datoN: Son los datos que representarn a cada uno de los
objetos de la clase.

Mtodo1(), mtodo2(), mtodo3(), mtodoN(): Son los mtodos que establecern y


obtendrn los valores de los datos de cada uno de los objetos de esta clase.

(): Indica que es un mtodo.

-: Modificador de acceso (visibilidad).

El modelado con diagramas de clases constituye entonces un esquema preciso que muestra
la estructura de los objetos, atributos y relaciones imprescindibles para poder representar
una informacin determinada.
Ejemplo:

Un diagrama de clases bsico para una motocicleta es el siguiente:

Motocicleta

Nombre de la clase

-color: color

Atributos de la clase
-cilindrada: int

+ arrancar(): void
+ acelerar(): void

Operaciones de la
clase

+ frenar():
void
Todos los Derechos Reservados
2010.
Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).
+ apagar(): void

Libro de Referentes

-velocidad mx: int

18

Programacin orientada a objetos

1.7 Modificadores de acceso


Estos modificadores permiten indicar la visibilidad que tendr cada uno de los datos o cada

Visibilidad
de los
datos

Privado

Los datos solo pueden ser vistos por


mtodos de la misma clase.

#
Protegido

Pueden ser vistos y utilizados por mtodos


de la misma clase y de subclases derivadas
de la clase donde estn declarados.

+
Pblico

Pueden ser vistos y utilizados por mtodos


de la misma clase y de otras clases.

_
Esttico

Son nicos para la clase, no pertenecen a


ningun objeto de la clase , pero pueden ser
vistos y utilizados por todas las instancias de
la clase.

Slo pueden ser vistos y utilizados por


mtodos de la misma clase.

Privado

Visibilidad
de los
mtodos

#
Protegido

Pueden ser vistos y utilizados por mtodos


de la misma clase y por mtodos de las
subclases donde estan declarados.

+
Pblico

Pueden ser vistos y utilizados tanto por


mtodos de la misma clase, como por
mtodos de otras clases.

_
Esttico

Son nicos para toda la clase.

*
Abstracto

No tienen implementacin, por lo tanto,


deben ser implementados en subclases.

Se debe tener en cuenta que por defecto los datos son privados, es decir, que no se define
su visibilidad mediante alguno de los modificadores de acceso. Esto se repite para los
mtodos.
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

uno de los mtodos. El siguiente esquema permite visualizarlos detalladamente:

19

Programacin orientada a objetos

Enlaces
http://www.slideshare.net/dersteppenwolf/introduccin-a-programacin-orientada-a-objetos-oopclases-y-objetos
http://elvex.ugr.es/decsai/java/pdf/3B-Clases.pdf

Bibliografa
Moreno, Joan Arnedo, Riera, Daniel. Programacin Orientada a Objetos. Eureca Media SL.
Tercera edicin. 2007.
Aragn Mesa, Francisco. Introduccin a la Programacin Orientada a Objetos.
SunMicrosystems.
Lpez, Leobardo. Metodologia de la programacin orientada a objetos. Editorial alfaomega.
2006.
Bishop, Judy. Java fundamentos de programacin. Editorial Addison Wesley. Segunda

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

edicin. 1999.

20

S-ar putea să vă placă și