Está en la página 1de 28

Programacin

Orientada a Objetos
Titulo: Programacin Orientada a Objetos
Autor: Daniel Ramrez
Fecha: 08-12-2016

La

POO es un mtodo muy parecido a la forma


en que hacemos cosas. Se caracteriza por las
siguientes
propiedades:
Objetos,
Clases,
Encapsulacin, Herencia y Polimorfismo.

Un

programa orientado a objetos est formado


por una coleccin de objetos interaccionando
conjuntamente para representar y solucionar
algn problema.

OBJETOS

Grficamente, podramos observar un programa orientado a


objetos, como:
Objeto
1

Objeto
2

OBJETOS

Objeto
4

Objeto
3

Objeto
5

Objeto
7

Objeto
8

Objeto
6

Son

entes, entidades, sujetos o cosas que


encontramos en el dominio del problema de
nuestra realidad. Entindase, en situaciones o
problemas
de
nuestro
mundo
cotidiano
empresarial, organizacional o institucional, que
se requiere manejar o solucionar mediante la
computadora.

QU SON LOS OBJETOS

Los objetos estn formados por dos elementos:


1.

Datos que representan su estructura. En otras


palabras; atributos que describen su forma o
apariencia

2.

Mtodos que implementan las funciones


propias de su comportamiento; es decir, mtodos
que manipulan los datos para hacer la entrada,
proceso y salida de los mismos

CMO ESTN FORMADOS LOS OBJETOS

El objeto se representa con


un rectngulo redondeado y
est formado por dos partes:
una parte se compone de los
datos que representan la
estructura del objeto, y la
otra, parte de los mtodos
que
implementan
las
operaciones que se deben
realizar sobre los datos

Objeto
Dato1
Dato2
Dato3
--datoN
Mtodo1()
Mtodo2()
Mtodo3()
--MtodoN()

ESQUEMA DE UN OBJETO

En

el
entorno
del
proceso
de
programacin, en el paso de anlisis del
problema, el elemento central es el
objeto; es decir, se estudia el problema y
se identifican los objetos involucrados y
sus relaciones.

CUNDO Y CMO IDENTIFICAR LOS OBJETOS

Definicin

del problema (Paso 1 del proceso de programacin)


Elaborar un programa que permita calcular el
sueldo de los empleados de una empresa
Anlisis

del problema

(paso 2)

1. Planteamiento del problema


En la empresa X hay varios empleados, por cada empleado se tienen los
datos: Nombre, Nmero de horas trabajadas y la Cuota que se le paga por
hora trabajada. Cada quincena se requiere emitir un cheque con los datos:
nombre del empleado y sueldo que se le debe pagar. El sueldo se calcula
multiplicando horas trabajadas por cuota por hora.
Resumiendo desde la perspectiva de entrada-proceso-salida:
Informacin de salida: Nombre y Sueldo
Datos que se deben leer: Nombre, Horas trabajadas y Cuota por hora
Proceso a seguir: Calcular Sueldo = Horas trabajadas x Cuota por hora

EJEMPLO DE CMO IDENTIFICAR LOS OBJETOS

Anlisis

del problema

(paso 2)

2. Identificar objetos
Para identificar los objetos en el dominio del problema, se debe
estudiar el caso expuesto, con el propsito de distinguir y
determinar el objeto o coleccin de objetos, que el programa debe
representar y manejar; para solucionar la situacin planteada.
Cmo se identifican los objetos?
Se buscan los sustantivos presentes en la especificacin; los
sustantivos son los objetos, en el presente problema se
menciona un sustantivo, los empleados.

EJEMPLO DE CMO IDENTIFICAR LOS OBJETOS

Anlisis

del problema

(paso 2)

2. Identificar objetos
As, tenemos que nuestro programa debe representar una coleccin
de empleados como la siguiente figura:
ObjetoEmpleado

ObjetoEmpleado

ObjetoEmpleado

Nombre
Juan

Nombre
Pedro

Nombre
Mateo

Horas trabajadas
40

Horas trabajadas
45

Cuota por hora


50.00

Cuota por hora


100.00

Cuota por hora


80.00

Sueldo
2000.00

Sueldo
4500.00

Sueldo
4400.00

------

Horas trabajadas
55

EJEMPLO DE CMO IDENTIFICAR LOS OBJETOS

La clase es una representacin abstracta que describe a un


conjunto de objetos; en otras palabras, es un tipo de dato
abstracto que representa a un conjunto de objetos que
tienen en comn una misma estructura (da datos) y un
mismo comportamiento (las mismas funciones), es decir,
son la misma cosa y hacen lo mismo.

En la fase de diseo del programa, el elemento central


es la clase; porque un conjunto de objetos iguales, debe
ser representado en forma abstracta por una clase, que
fungir como una plantilla o molde, para crear todos y
cada uno de los objetos necesarios.

CLASES Y SU RELACIN CON LOS OBJETOS

3. Diseo del programa

Para disear el programa, se elabora o disea el


algoritmo que soluciona el problema, se disea la
lgica de las clases en pseudocdigo; despus se
hace la prueba de escritorio

CLASES Y SU RELACIN CON LOS OBJETOS

Una

vez identificados los objetos del problema, se


procede a disear el diagrama de clases, para lo cual
primero debemos determinar la(s) clase(s) que
necesitaremos, y luego dibujar el diagrama con la
representacin de la(s) clase(s) y sus instancias.

Los

objetos identificados en el punto anterior se


convierten en clases, que como ya se mencion, son la
representacin abstracta de un conjunto de objetos.
En el problema mencionado se tiene un conjunto de
objetos empleados; clase empleado:
Empleado

DETERMINAR LA CLASE

Empleado

ObjetoEmpleado

ObjetoEmpleado

ObjetoEmpleado

Nombre
Juan

Nombre
Pedro

Nombre
Mateo

Horas trabajadas
40

Horas trabajadas
45

Cuota por hora


50.00

Cuota por hora


100.00

Cuota por hora


80.00

Sueldo
2000.00

Sueldo
4500.00

Sueldo
4400.00

------

Horas trabajadas
55

REPRESENTACIN DE LA CLASE Y SUS INSTANCIAS

Mtodos
Los mtodos son las acciones que implementan el
comportamiento o las funciones de un objeto; por ejemplo,
leer o dar entrada a los datos, hacer clculos, imprimir o
dar salida de datos.

Encapsulacin
Significa colocar juntos los datos y los mtodos dentro de un
objeto. Uno de los principios ms importantes de la POO,
es que el programador debe pensar en el cdigo y los
datos juntos durante el diseo del programa.

MTODOS Y ENCAPSULACIN

Al

disear la estructura de una clase, se debe


hacer dos cosas:

1.

Definir los datos que representarn a los


objetos de la clase. Los datos que representan a un
objeto son de dos tipos: datos que se leen y datos que se
generan por clculos

2.

Definir los mtodos que implementarn las


acciones de los objetos. Los mtodos son de dos tipos:
un tipo son los mtodos que colocan o establecen (setters)
valores a los datos del objeto; ya sea a travs de leerlos o
mediante clculos. El otro tipo son mtodos que acceden u
obtienen (getters) los valores de los datos para utilizarlos.

ENCAPSULACIN

Cmo

identificar los mtodos? Se buscan


los verbos presentes en el planteamiento
del problema, en nuestro caso se debe

Imprimir como salida: Nombre y Sueldo


Leer los datos: Nombre, Horas trabajadas y Cuota por hora
Calcular el Sueldo = Horas trabajadas x Cuota por hora

Tpicamente,

para establecer los valores para


cada uno de los datos de un objeto, se requiere
definir y disear un mtodo perteneciente al
objeto que permita colocar (setter) el valor a
cada dato; ya sea que lo lea o lo calcule
Continua

ENCAPSULACIN

As

mismo, para dar salida al valor de un dato, se


requiere definir y disear un mtodo que permita
acceder (getter) al valor del dato para darlo
como salida, esto es, un mtodo para obtener
cada dato.

En

la POO, la encapsulacin de datos es una


disciplina que se debe respetar siempre. Para
establecer u obtener los datos de un objeto, se
debe hacer mediante mtodos del mismo objeto,
y no leerlos o accederlos directamente.

ENCAPSULACIN

Ejemplo

En el ejemplo de calcular el sueldo de varios empleados,


tenemos que cada objeto de empleado se representa
mediante los datos:
nombreEmp Nombre del empleado
horasTrab Nmero de horas trabajadas
cuotaHoraCuota por hora
sueldo Sueldo del empleado

Para cada dato se debe definir un mtodo para


establecer o colocar (setter) el valor que tomar,
ya sea al leer el dato, por clculo o de otra forma
ENCAPSULACIN

Ejemplo

Y, otro mtodo que permita obtener o acceder (getter) al


valor para utilizarlo, ya sea para hacer clculos, para
imprimirlo o hacer otra cosa con l. En el problema antes
mencionado se requieren los siguientes mtodos:
establecerNombreEmp(). Para leer (entrada) el valor del dato
nombreEmp
establecerHorasTrab().
Para leer (entrada) el valor del dato
horasTrab
establecerCuotaHora().
Para leer (entrada) el valor del dato
cuotaHora
calcularSueldo().
Para calcular y establecer el valor del
dato sueldo

obtenerNombreEmp(). Para acceder e imprimir el valor del


dato nombreEmp
obtenerSueldo().
sueldo

Para acceder e imprimir el valor del dato

ENCAPSULACIN

Empleado
nombreEmp
horasTrab
cuotaHora
Sueldo
establecerNombreEmp()
establecerHorasTrab ()
establecerCuotaHora ()
calcularSueldo()
obtenerNombreEmp()
obtenerSueldo()

DIAGRAMA DE CLASES

Empleado
nombreEmp
horasTrab
cuotaHora
Sueldo
establecerNombreEmp()
establecerHorasTrab ()
establecerCuotaHora ()
calcularSueldo()
obtenerNombreEmp()
obtenerSueldo()

ObjetoEmpleado
Nombre
Juan
Horas trabajadas
40
Cuota por hora
50.00
Sueldo
2000.00

establecerNombreEmp()
establecerHorasTrab ()
establecerCuotaHora ()
calcularSueldo()
obtenerNombreEmp()
obtenerSueldo()

ObjetoEmpleado
Nombre
Mateo
Horas trabajadas
55
Cuota por hora
80.00
Sueldo
4400.00

establecerNombreEmp()
establecerHorasTrab ()
establecerCuotaHora ()
calcularSueldo()
obtenerNombreEmp()
obtenerSueldo()

GENERAR INSTANCIAS DE UNA CLASE

El

diagrama de clases que se ha diseado es lo


que constituye el modelo del programa, sin
embargo este modelo necesita ser usado en la
solucin del problema, y para hacerlo se requiere
la arquitectura modelo-vista-controlador; la
cual establece que un programa orientado a
objetos est formado por tres partes:

ARQUITECTURA MODELO-VISTA-CONTROLADOR

El modelo. Es la clase o conjunto de clases identificadas


en el dominio del problema, mismas que representan al
objeto u objetos presentes en el problema.

Las vista. Es la interfaz de usuario; es decir, lo que el


usuario observar en la pantalla, impresora u otro
dispositivo de salida

El controlador. Es la parte que permite que el usuario


interacte con la vista para utilizar el modelo que
representa y soluciona el problema
Controlador

Modelo

Vista

ARQUITECTURA MODELO-VISTA-CONTROLADOR

Nota. En programas no muy complejos o que la vista es sencilla,


la parte controlador incluye a la parte vista; y la arquitectura del
programa se simplifica a dos partes.

Aplicando

la arquitectura al
Empleado, el diagrama queda:

problema

del

Empleado
nombreEmp
horasTrab
cuotaHora
Sueldo

EjecutaEmpleado

establecerNombreEmp()
establecerHorasTrab ()
establecerCuotaHora ()
calcularSueldo()
obtenerNombreEmp()
obtenerSueldo()

ARQUITECTURA MODELO-VISTA-CONTROLADOR

Algoritmo CALCULAR SUELDO DE UN EMPLEADO


Clase Empleado
1. Declaraciones
Datos
nombreEmp: Cadena
horasTrab: Entero
cuotaHora: Real
sueldo: Real
2. Mtodo estableceNombreEmp(nom: Cadena)
a. nombreEmp = nom
b. Fin Mtodo establecerNombreEmp
3. Mtodo estableceHorasTrab(horasTr: Entero)
a. horasTrab = horasTr
b. Fin Mtodo estableceHorasTrab
4. Mtodo estableceCuotaHora(cuotaHr: Real)
a. cuotaHora = cuotaHr
b. Fin Mtodo estableceCuotaHora
5. Mtodo calcularSueldo()
a. sueldo = horasTrab * cuotaHora
b. Fin Mtodo calcularSueldo

6. Mtodo obtenerNombreEmp(): Cadena


a. return nombreEmp
b. Fin Mtodo obtenerNombreEmp
7. Mtodo obtenerSueldo(): Real
a. return sueldo
b. Fin Mtodo obtenerSueldo
Clase EjecutaEmpleado
1. Men pricnipal
a. Declaraciones
Variables
nomEmp: Cadena
hrsTra: Entero
cuoHr: Real
b. Declarar, crear e iniciar objeto
Empleado objEmpleado = new Empleado()
c. Solicitar Nombre, nmero de horas trabajadas y cuota por hora
d. Leer nomEmp, hrsTra, cuoHr
e. Establecer objEmpleado.establecerNombreEmp(nomEmp)
objEmpleado.establecerHorasTrab(hrsTra)
objEmpleado.establecer.Cuotahora(cuoHr)
f. Calcular objEmpleado.calcularSueldo()

Clase EjecutaEmpleado
1. Men pricnipal
a. Declaraciones
Variables
nomEmp: Cadena
hrsTra: Entero
cuoHr: Real
b. Declarar, crear e iniciar objeto
Empleado objEmpleado = new Empleado()
c. Solicitar Nombre, nmero de horas trabajadas y cuota por hora
d. Leer nomEmp, hrsTra, cuoHr
e. Establecer objEmpleado.establecerNombreEmp(nomEmp)
objEmpleado.establecerHorasTrab(hrsTra)
objEmpleado.establecer.Cuotahora(cuoHr)
f. Calcular objEmpleado.calcularSueldo()
g. Imprimir objEmpleado.obtenerNombreEmp()
objEmpleado.obtenerSueldo()
h. Fin Mtodo principal
Fin Clase EjecutaEmpleado
Fin

También podría gustarte