Professional Documents
Culture Documents
Unidad II
El Paradigma Orientado a Objeto
Vivimos en un mundo de objetos. Estos objetos existen en la naturaleza, en entidades
hechas por el hombre, en los negocios y en los productos que usamos. Pueden ser
clasificados, descritos, organizados, combinados, manipulados y creados. Por eso no es
sorprendente que se proponga una visin orientada a objetos para la creacin de software de
computadora, una abstraccin que modela el mundo de forma tal que nos ayuda a entenderlo
y gobernarlo mejor.
La metodologa orientada a objetos utiliza los objetos como elementos fundamentales
en la construccin de una solucin computacional. El enfoque orientado a objeto resulta
atractivo para el funcionamiento de la cognicin humana, porque imita la forma en que los
seres humanos clasifican las cosas que les rodean. Son ms flexibles al cambio. Esto significa
que se puede admitir que tales sistemas evolucionen en el tiempo, en lugar de ser
abandonados o completamente rediseados.
La clasificacin es un proceso mental que permite:
1.- Agrupar conjunto de objetos en categoras denominadas clases.
2.- Establecer categoras conceptuales o denominaciones abstractas.
3.- Organizar el mundo que nos rodea en base a caractersticas esenciales.
4.- Facilitar el aprendizaje.
Clase: Una clase es un conjunto de objetos que comparten una estructura comn y un
comportamiento comn. Una clase representa slo una abstraccin, la esencia de un objeto.
(Booch). Una clase no ocupa espacio ya que es una plantilla para crear objetos. Es un tipo
de dato.
Atributos y Mtodos: Los atributos son las propiedades a veces denominadas
caractersticas. Los atributos definen la apariencia del objeto. Los mtodos describen el
comportamiento. Definen las instrucciones necesarias para realizar un proceso. Los mtodos
se desarrollan siguiendo la estructura de un algoritmo.
Especificadores de acceso
- Los atributos y mtodos privados permiten la ocultacin de la informacin.
- Los atributos y mtodos pblicos son accesibles desde el exterior.
- Los atributos se definirn privados y los mtodos pblicos en este curso de Introduccn a
la Computacin.
2
Ejemplo de clase
Representacin de una Clase. Se representa segn la notacin UML por un rectngulo que
consta de 3 partes:
Clase
atributos
metodos()
Nombre de la Clase
Los atributos privados, significa que slo
la clase y sus objetos pueden acceder a
ellos.
3
tener dinero en determinado momento (valor dinmico), sin embargo su nmero de serie
es una propiedad esttica y el valor es esttico.
Comportamiento: El comportamiento es cmo acta y reacciona un objeto, en trminos
de sus cambios de estado y paso de mensajes, en otras palabras, el comportamiento de un
objeto representa su actividad visible y comprobable exteriormente.
Mensajes entre Objetos: Los objetos se comunican usando mensajes (Instrucciones). Un
mensaje es una peticin a un objeto para invocar uno de sus mtodos.
ObjetoReceptor
Atributos
+
Mtodos
Cpsula
Mensaje
Atributos
+
Mtodos
Cpsula
Los atributos y mtodos se dicen que
estn encapsulados en una sola unidad
Clase y Objeto
La clase no puede tomar valores en sus atributos ni ejecutar mtodos. El objeto puede
tomar valores y ejecutar mtodos
Pilares bsicos de la Programacin Orientada a Objetos.
Abstraccin: Consiste en captar las caractersticas esenciales de un objeto, as como su
comportamiento. La abstraccin se centra en las caractersticas esenciales de algn objeto, en
relacin a la perspectiva del observador.
Encapsulamiento: Los especificadores de acceso contribuyen al encapsulado del objeto. Los
atributos y mtodos estn encapsulados en una sola entidad, los mtodos dentro del objeto son
el nico medio de acceder a sus atributos privados. El encapsulamiento permite que los
detalles de la implementacin se mantengan ocultos.
Modularidad: Es la propiedad que tiene un sistema que ha sido descompuesto en un
conjunto de mdulos cohesivos y dbilmente acoplados. El uso de mdulos es esencial para
manejar la complejidad
2 Asignacin de Responsabilidades
Este paso comienza con la asignacin de responsabilidades a cada clase. Las responsabilidades
se dividen en 2 grupos:
1. La informacin que debe tener (atributos)
2. Las operaciones que debe realizar (mtodos)
3 Descripcin de los mtodos de clculo
En esta paso se determina el tipo de estructura de control que se utilizar en la lgica de
programacin y se describen los mtodos de clculo.
Las estructuras de control que utilizaremos en este curso sern de tres tipos: Secuenciales,
Selectivas y Repetitivas.
Prof. Mara Elena Torres Lapso 2014-1
5
La estructura de control secuencial es aquella en la que las instrucciones se ejecutan en
secuencia, en el orden en que se van presentando.
La estructura de control selectiva es aquella en la que un bloque de instrucciones se ejecuta
dependiendo del valor de una condicin (verdadero o falso).
La estructura repetitiva es aquella en la que un bloque de instrucciones se ejecuta un nmero
finito de veces (en forma repetida). Se utiliza cuando se deben procesar varios objetos de un
mismo tipo.
4 Relaciones entre clases
En este paso se analizan las relaciones entre clases y el modo en que stas se convierten en una
implementacin.
Para los efectos de este curso analizaremos nicamente
las relaciones de asociacin de clases
Una Asociacin es una relacin, en las que un objeto realiza llamadas a los servicios
(mtodos) de otro, interactuando de esta forma con l.
Establece una cardinalidad o multiplicidad.
Una asociacin define una relacin de pertenencia.
Seccin
Muchos
Uno
7
Un parmetro por valor () es aquel en el cual la variable no mantiene sus cambios o
actualizaciones cuando finaliza la funcin que los recibe.
Atributos
En nuestro caso de estudio se debe establecer el tipo de dato a que corresponden los
atributos de las clases, si los mtodos deben retornar un valor o si necesitan de datos adicionales
(parmetros) para cumplir con su responsabilidad. Recordar que los tipos de datos bsicos son:
entero, real, alfanumrico y lgico. Tambin se pueden utilizar los datos definidos por el usuario,
como son las clases.
Los atributos se especifican con el siguiente formato:
<tipo dato> <Identificador de Atributo>
Palabras reservadas
Se denotan como palabras en minscula. Las palabras reservadas son elementos dentro de la
sintaxis (regla para el uso correcto de los elementos de un lenguaje) que no pueden ser utilizadas
como identificadores de ningn tipo, debido a que forman parte de las sentencias (instrucciones)
del lenguaje.
Ejemplo:
inicio
real
clase
leer
entonces sino
fin
entero
retornar
escribir
const
alfanum
publico
repita para
logico
privado
principal
repita mientras
si
Identificadores
Los identificadores se utilizan como nombres de variables, constantes, estructuras de datos,
clases o nombre de funciones y mtodos los cuales no puede contener ningn carcter especial
ni alguno de los siguientes caracteres como: *, -, /, \, , <, >, | . Los identificadores no pueden ser
palabras reservadas. En el curso de Introduccin a la Computacin la notacin a seguir ser
CamelCase (primera letra de cada palabra en mayscula) para denotar nombre de Clases e
interfaces de entrada/salida y dromedaryCase (primera letra en minscula, las restantes en
mayscula) para denotar nombre de variables, atributos, objetos y nombre de mtodos. Los
nombres de constantes se denotarn en mayscula.
Comentarios
Los comentarios se definen como una secuencia de texto precedida por //
Ejemplo:
// Este es un comentario
9
<Tipo que retorna >
Puede ser: entero, real, alfanum, logico
Si la funcin no retorna un valor tiene la siguiente estructura:
<Propietario> <Identificador de la funcin> (Parmetros)
// Declaracin Variables locales
inicio
//Cuerpo de la funcin
fin
Una funcin que no retorna valor, normalmente se usa para modificar y/o actualizar los
atributos del objeto.
Si la funcin retorna un valor tiene la siguiente estructura:
<Tipo que retorna> <Propietario> <Identificador de la funcin> (Parmetros)
Tipo VariableLocal
inicio
//Cuerpo de la funcin
retornar VariableLocal o Atributo
fin
Una funcin que retorna valor, normalmente se usa para realizar clculos utilizando los atributos
de la clase y devolver un resultado; o que devuelve el valor de un atributo.
Dentro de una funcin tambin se pueden declarar variables. Todas estas declaraciones son
locales a la funcin y por lo tanto pierden validez y alcance (mbito) fuera del contexto de la
implementacin de la funcin, desapareciendo de la memoria del computador al finalizar el
mtodo que las cre.
<Propietario>
El propietario se refierea al dueo de la funcin ( en que parte del programa fue implementada).
Una funcin puede tener dos tipos de propietario. Puede ser un mtodo de una clase o puede ser
una funcin de la aplicacin principal. Si es una funcin de una clase tiene las siguientes
estructuras:
<Tipo retorno> <Identif. clase> <Identif. funcin> (Parametros)
<Identif. clase> <Identif. funcin> (Parametros)
// si retorna valor
// si no retorna valor
// si no retorna valor
10
Un parmetro o argumento es una variable que puede ser recibida por una funcin. Una funcin
usa los valores asignados a sus parmetros para determinar su comportamiento en tiempo de
ejecucin, como anteriormente vimos en la fase de diseo su estructura bsica es:
<Tipo> <Tipo_parametro> <Identificador>
Definicin de la clase
Desarrollo de los mtodos
Cuerpo principal (implementacin)
Desarrollo de las funciones propias del programa de aplicacin
fin
//Mtodo que retorna un valor
<tipo> ClaseIdentificador metodo2 (parmetros)
inicio
<tipo> varLocal
//Cuerpo del mtodo
retornar varLocal
fin
Nota: varLocal debe ser del mismo tipo que se establece en la cabecera de la funcin.
Adems de los mtodos explcitos en el enunciado del problema, hay mtodos implcito (dos)
por cada atributo de la clase:
Prof. Mara Elena Torres Lapso 2014-1
11
setAtributo (parmetros)
<tipo> getAtributo ( )
fin
//Funcin que retorna un valor
<tipo> <IdentificadortFuncin> (parmetros)
inicio
<tipo> varLocal
//Cuerpo del mtodo
retornar varLocal
fin
Nota: varLocal debe ser del mismo tipo que se establece en la cabecera de la funcin.
Llamado a los mtodos y funciones.
La forma de ejecutar un mtodo o funcin tiene dos formatos, dependiendo de donde se
llame.
1 Si se llama dentro del mismo propietario, basta con usar el nombre del mtodo.
2 Si se llama fuera del dominio del propietario del mtodo, se debe utilizar el nombre del objeto
<ObjetoIdentificador>, el cual debe ser de la clase propietaria del mtodo; seguido de un
punto (.) y luego el nombre del mtodo.
Para llamar a una funcin dentro de la aplicacin principal, basta con usar el nombre de la
funcin.
Prof. Mara Elena Torres Lapso 2014-1
12
// 1 Suponer que definimos la siguiente clase
clase Estudiante
inicio
privado:
real
nota
publico:
setNota (real
real
getNota ( )
fin
laNota)
fin
//Nota: Observar la utilizacin del punto (.) en la llamada al mtodo de la clase.
13
Una variacin de la seleccin simple permite usar un solo predicado para condicionar la
ejecucin de otra accin, de la siguiente manera:
si (condicin)
inicio
//Sentencias
fin
sino
inicio
//Sentencias
fin
Nota: condicin es una expresin algortmica que al ser evaluada devuelve uno de 2 posibles
valores, verdadero falso
Dentro de las sentencias de una selectiva puede haber una o ms instrucciones selectivas y lo
cual se conoce como selectivas anidadas o mltiples. A continuacin se presenta un ejemplo de
estructura secuencial, con una sola clase de objeto al cual se le aplicar la Metodologa
Orientada a Objeto descrita anteriormente.
Clasificacin
Calculadora
numero1
numero2
sumar
setNumero1
getNumero1
setNumero2
getNumero2
14
4 Caracterizacin de Relaciones.
Como definimos una sola clase, no existen relaciones.
2da Fase. Diseo Orientado a Objeto
Calculadora
entero numero1
entero numero2
setNumero1(entero elNumero1)
entero getNumero1()
setNumero2(entero elNumero2)
entero getNumero2()
entero sumar()
15
entero Calculadora sumar ( )
inicio
entero resultado
resultado = numero1 + numero2
retornar resultado
fin
// Notar que la variable local a retornar resultado debe ser del mismo tipo (entero) que el valor que retorna el
mtodo (definido como entero en su encabezado)
Implementacin de la aplicacin
La aplicacin interacta con el usuario, leyendo datos (desde el teclado) y mostrando
resultados (por la pantalla o impresora) Toda aplicacin tiene una secuencia lgica, a saber:
1. Creacin de los objetos
2. Darle vida a los objetos, agregndole la informacin a sus atributos
3. Poner a interactuar los objetos, entre ellos y con la aplicacin
4. Mostrar el resultado de la interaccin.
//Cuerpo Principal
principal ( )
inicio
Calculadora laCalculadora
IEntrada (laCalculadora)
ISalida (laCalculadora)
fin
BIBLIOGRAFIA
Booch, Grady. 1998.Anlisis y diseo orientado a objetos. Editorial Prentice Hall.
Joyanes, Aguilar. 2006. Algoritmos, estructuras de datos y objeto. Programacin en
C++. 2da. Edicin. Mc Graw Hill.