Está en la página 1de 29

1

Hasta ahora hemos trabajado diferentes


estructuras de control en un mtodo principal
o en mtodos estticos que son invocados
desde la misma clase.
En este captulo, se utilizarn las mismas
estructuras pero en mtodos de instancia que
no son invocados desde clases sino desde
objetos, aunque cumplen con las mismas
definiciones de mtodos presentadas en el
captulo anterior.

Programar bajo el paradigma de programacin


orientada a objetos (POO) consiste en simular o
modelar los objetos del mundo real.
Es una forma de programacin que surge en los
aos 70 pero tiene un desarrollo sorprendente
los aos 90.

Las instrucciones hacen referencia a los


elementos que nos rodean. Esos elementos
representan "objetos"; y todos los datos y todas
las acciones que se hagan con ellos o sobre ellos,
estn encapsuladas u ocultas en el objeto.
La base fundamental de la POO, son los Objetos
y las Clases.
3

CARACTERISTICAS:

ACCIONES QUE PUEDE HACER:

raza

color

edad

nombre
Variables de la clase ,
son sustantivos

comer

correr

dormir

maullar
Mtodos de la clase, son verbos en
infinitivo.

Se puede definir la clase Gato, como una abstraccin de todos


los gatos.

miau

En la granja existen los gatos miau y


micifuz, que tienen las mismas
caractersticas,
pero
con
valores
diferentes

micifuz

Clase Gato:
CARACTERISTICAS:

raza
color
edad
nombre

ACCIONES QUE PUEDE HACER:

comer

correr
dormir
maullar

Objeto miau:
CARACTERISTICAS DE miau

raza: burns
color: blanco - gris
edad: 2 aos
nombre: miau

Objeto micifuz
CARACTERISTICAS DE micifuz:

raza : dorado Africano

color : oro-blanco
edad: 4 aos
nombre : micifuz

Una clase es una plantilla para crear objetos,


constituyendo una abstraccin del mundo real. Una
clase es un tipo de dato definido por el programador
y las variables definidas sobre ella se denominan
objetos. Se puede diagramar as:

CLASE NombreClase
Variable1
Variable2

Mtodo1()
Mtodo2()

CLASE Gato
CARCTER raza
CARCTER color
ENTERO edad
CARCTER nombre
VOID comer()
VOID correr()
VOID dormir()
VOID maullar()

Un objeto es una instanciacin de una clase, es decir,


la materializacin de la clase. Cuando se instancia un
objeto se le dan valores a las variables de la clase y
se pueden invocar los mtodos. Se pueden diagramar
as:

Nombre Objeto : Clase


Variable1= valor
Variable2= valor

mtodo1( )
mtodo2( )

miau: Gato la Clase


Raza= burns
color= blanco - gris
edad= 2 aos
nombre= miau
VOID comer()
VOID correr()
VOID dormir()
VOID maullar()

Abstraccin: es la caracterstica ms bsica de la


POO, que permite identificar las cualidades y
acciones que un objeto puede realizar.
Encapsulamiento: propiedad que tienen las clases
de agrupar las caractersticas y las acciones bajo
una misma unidad de programacin.
Ocultamiento de la Informacin: permite
proteger los objetos restringiendo y controlando
el acceso a la clase que los define.

10

Sobrecarga: Permite a una misma clase tener varios


mtodos con el mismo nombre, inclusive con el mismo
valor de retorno, pero con diferentes parmetros.
Polimorfismo: Este concepto es aplicado a varios objetos
que comparten un mtodo con el mismo nombre.

Herencia: Se pueden tener clases hijas con el mismo


contenido de su clase padre, permitiendo la utilizacin de
clases existentes y adicin
de nuevas variables y
mtodos.
Reutilizacin: Es una de las propiedades ms deseadas en
la programacin ya que conlleva a un ahorro de tiempo y
ahorro de lneas de cdigo.
11

Condicionan el acceso a las variables, mtodos y clases,


definiendo su nivel de ocultamiento. Pueden ser:

(+) Pblico: El elemento puede ser accedido desde cualquier clase.


(-) Privado: Solo se puede acceder al elemento desde mtodos
miembros de la clase.

(#) Protegido: Proporciona acceso pblico para las clases derivadas


y acceso privado para el resto de clases.
( ) Sin modificador: Se puede acceder al elemento desde cualquier
clase que est en la misma ubicacin (carpeta)

Nota Las clases no pueden declararse ni protegidas ni privadas


12

Diagramar una clase que permita representar


un estudiante universitario y crear un objeto
de dicha clase.

Variables de la clase?

Mtodos?

13

MODIFICADOR_ACCESO CLASE Nombre_Clase


MODIFICADOR_ACCESO TIPO variable1
MODIFICADOR_ACCESO TIPO variable2

MODIFICADOR_ACCESO TIPO_RETORNO metodo1()

FIN_ metodo1
MODIFICADOR_ACCESO TIPO_RETORNO metodo2()

FIN_ metodo2

FIN_CLASE
14

El constructor o funcin constructora es un


mtodo pblico que tiene el mismo nombre de la
clase y se ejecuta automticamente al crear un
objeto de la clase, no tienen valor de retorno ni
parmetros de envo. Inicializa variables de la
clase.
El destructor, que se ejecuta automticamente al
destruirse la clase. Este mtodo comnmente es
opcional y se utiliza para dar instrucciones
finales como liberar memoria, cerrar archivos,
tiene
el
mismo
nombre
de
la
clase
anteponindoosle el carcter ~
15

Crear una clase que permita representar los


datos bsicos de una persona y calcular su
ndice de masa corporal y su edad.
Persona
+nombre
+ao Nacimiento
+sexo
-peso
-estatura
+calcularIndiceMasaCorporal ( )
+calcula redad ( )
16

De una clase se pueden crear todos los objetos que


sean necesarios, es decir, con la plantilla de la clase se
pueden crear muchas personas. Este proceso es
llamado instanciacin de la clase.
Como el constructor se ejecuta automticamente;
entonces se le deben enviar los argumentos que
necesite este mtodo, si los tiene. Ejemplos:

Persona objeto1
objeto1=Persona (SAMUEL, 2010, H, 13.7, 90.5)
Persona objeto2=Persona (MARA ISABEL, 2002, M,
45, 140)
17

Persona

aoNacimiento
peso
estatura
calcularIndiceMasaCorporal( )
calcularEdad( )

samuel: Persona
aoNacimiento= 1951
peso= 90
estatura= 1.80
calcularIndiceMasaCorporal( )
calcularEdad( )

18

Definidas las clases necesarias para solucionar un


problema, se puede proceder a usarlas en el mtodo
principal.
Usualmente, es en este mtodo donde se realiza el
proceso de instanciacin y se procede a utilizar las
variables y los mtodos de las clases.
Ejemplos:

objeto.variable //si la variable es pblica


objeto1.nombre=DAVID //se cambia nombre
ESCRIBA: objeto2.sexo //si la variable es pblica
retorno=objeto.Metodo() //llamada func de retorno
objeto.Metodo() //llamada a un VOID
19

1. Identificacin de datos, acciones y limitaciones:


En la definicin del problemas se identifican los
datos de entrada, los datos de salida, los procesos o
acciones.
2. Definicin de clases:
Buscar los sustantivos relevantes dentro del enunciado
que no sean datos de entrada o de salida.
Relacionar los sustantivos con los datos de entrada, los
datos de salida y las acciones identificadas.
Seleccionar como clases aquellos sustantivos que tienen
asignado al menos un dato o al menos una accin.
20

3. Definicin del mtodo principal: Se debe analizar


cuntos objetos deben ser creados de cada clase.
Igualmente, se debe identificar cules mtodos
deben ser invocados para cada objeto.

4. Creacin de pseudocdigo: Este es el paso final


para solucionar un problema mediante POO. Se debe
partir del diagrama de clases.
5. Prueba de escritorio: Este paso es muy importante
para verificar que los datos de salida sean correctos.
21

Construir un programa que permita realizar las


operaciones de suma, resta, multiplicacin y
divisin de dos nmeros ingresados por el
usuario y otro mtodo que encuentra la suma de
tres nmeros. (El otro nmero se debe recibir
como parmetro)

22

Permiten consultar o modificar los atributos definidos en


una clase. Son:

Obtener Variable (getVariable): Es una funcin que


retorna el contenido de una variable de clase (lo
consulta). No tiene parmetros de entrada.
Modificar Variable (setVariable): Es un VOID que permite
cambiar el contenido de una variable. El nuevo valor es
enviado como parmetro de entrada al mtodo

NOTA: Si una clase tiene n variables tendr 2n mtodos


accesores.

23

Construir un programa que permita manipular la cuenta


bancaria de una persona.
La informacin que se tiene de la cuenta es el nmero, la clave
de acceso, el dueo y el saldo. Las operaciones que se pueden
realizar con la cuenta son: consignar dinero, retirar dinero,
cambiar la clave y consultar el saldo.
Se debe crear la cuenta de Magdalena Snchez, con nmero
1012, clave 1234 y saldo en cero. A la cuenta en mencin se le
consignan $100 000 y cambiarle la clave por 1217. Tambin se
debe crear la cuenta de otra persona con datos entrados por el
usuario y mostrar todos sus datos.
24

Construir un programa que calcule el promedio


crdito de un estudiante.
Para cada materia se debe ingresar la nota y los
crditos.
El programa debe informar el nombre del estudiante,
el semestre actual y el promedio crdito.

25

Desarrollar un conversor de cambio monetario de


peso a dlar y de peso a euro.
El usuario debe tener la posibilidad de seleccionar
si desea ingresar el valor de las tasas de cambio o
si desea utilizar las que tenga el programa por
defecto.
Adems, se debe tener la posibilidad de convertir
diferentes cantidades.
26

Al igual que los hijos heredamos caractersticas de


nuestros padres, en la POO podemos obtener clases hijas
con el mismo contenido de su clase padre, de esta manera
se obtiene una reutilizacin de las clases.
La reutilizacin ha sido abordada en la programacin
estructural por medio de funciones. Esto permite crear
lneas de cdigo que pueden ser invocadas tantas veces
como sea necesario. En la POO este concepto es extendido
a las clases, de manera que no solo se utilizan clases
existentes, sino que tambin se adicionan nuevas variables
y mtodos a estas sin modificar el contenido original.
La reutilizacin se logra por medio de la herencia de
clases, donde la clase hija tiene a su disposicin todos los
miembros de la clase padre, llamada tambin superclase o
clase base. La clase hija es llamada tambin subclase o
clase heredada.
27

En la figura la clase Mamifero es la clase padre, y las clases Gato, Vaca


y Ballena heredan de ella, obteniendo las variables y mtodos visibles
de la clase padre.
las clases hijas pueden adicionar variables y mtodos propios de cada
animal sin afectar el comportamiento de las otras clases que heredaron

28

El concepto de polimorfismo se aplica a varios


objetos que comparten un mtodo con el
mismo nombre.
Cuando este mtodo es invocado depende del
objeto que lo contiene; por lo tanto tendr un
comportamiento diferente para cada instancia.

29

También podría gustarte