You are on page 1of 86

Programacin orientada a objetos

POO

Docente: Ing. Orlando Barcia Ayala


www.orlandobarcia.com
@orlandobarcia
www.youtube.com/c/orlandobarciaweb
Barcia, O. (2016). Programacin aplicada a la Ingeniera. Ecuador

Contenido

Clases y objetos
Atributos
Mtodos
Propiedades:
Abstraccin, encapsulamiento,
herencia, polimorfismo, reutilizacin de
cdigo
UML

Programacin orientada a objetos


P.O.O

POO
Enfatiza en los datos
Combina en una unidad las
caractersticas (datos) como su
comportamiento (funciones o
mtodos) Esta unidad se denomina
objeto
(Joyanes, 2008)

Programacin orientada a
objetos
Es un modelo de programacin cuya
idea principal es descomponer un
problema en entidades de software
llamadas objetos.
La Programacin Orientada a Objetos
trata de aproximar la programacin a
la vida real.

En la programacin orientada a
objetos el cdigo y los datos estn
fusionadas en algo indivisible: un
objeto.
En la POO los datos son tratados
como elementos crticos y no fluyen
libremente, sino que se limitan a las
funciones donde operan, lo que los
protege de una modificacin
accidental.

Ventajas de la
Programacin Orientada a
Objetos
Los datos estn encapsulados y no
pueden ser accesados por funciones
externas al objeto.
Los objetos pueden comunicarse
entre s a travs de funciones o
mtodos.
Pueden agregarse nuevos datos y
funciones fcilmente cuando se
requiera.

Definicin previa de objeto y clase


Objeto . Es un elemento individual con propia identidad.
Clase. Define que datos se utilizan para representar a un
objeto y que operaciones se pueden efectuar sobre los datos.
Una clase describe un objeto
Un objeto es una instancia de una clase
Ejm:
Clase propiedades genricas de un ejecutivo
Un objeto, es un ejecutivo especfico (Rosa , gerente)

(Joyanes, 2008)

Clases objetos en Programacin


En Programacin una clase es un
TIPO DE DATO

Se pueden crear muchas variables de


este tipo
Estas variables se llaman instancia
de la clase

Objeto
Es algo que se visualiza, se utiliza
Puede ser tangible o intangible
Puede ser abstracto o describir un
proceso

Objetos.

Visin general

Es cualquier ente, cualquier cosa que


se nos imagine.
Puede ser tangible o intangible
Ejm
(tangible)Carro, casa, mesa,
computador, celular, lavador, etc
(intangible) software, ventana de
windows, un men, un icono, etc

Objeto
Punto de vista conceptual
Un objeto es una entidad individual
de un sistema que se caracteriza por
un estado y un comportamiento
Punto de vista implementacin
Un objeto es una entidad que posee
un conjunto de datos (estado o
atributos) y un conjunto de
operaciones (comportamiento)

Clase. Visin general


La clase es el patrn o modelo para
crear objetos.
Una clase cuenta con
Atributos
Acciones o comportamiento

Clase
Encapsula o agrupa
Atributos
(Caractersticas
)

Comportamient
o
(Acciones)

Atributos +
comportamientos

Clase. Visin general


Atributos
Son las propiedades, caractersticas,
rasgos
Acciones o comportamientos
Son todas las actividades que el objeto
puede realizar

Clase.

Visin Programacin OO

Una clase es una agrupacin de :


datos (variables miembros)

atribut
os
de funciones (mtodos miembros)
que
operan sobre esos datos.

comportamien
tos

Objeto.

Visin Programacin OO

Es una instancia de una clase


Por lo tanto tiene:
Todos los atributos (variables) y
Todos los comportamientos (mtodos)
de la clase

Ejemplo: clase Persona


Usted, Yo, Carlos, Mara son:
INSTANCIAS DE LA CLASE PERSONA

Persona
Nombre
Altura
Peso
Edad
.

Comer()
Dormir()
Leer()
Escribir()
Hablar()

Clase Encapsula o
agrupa
Atributos +
comportamientos
Atributos
(Caractersticas
)

Comportamient
o
(Acciones)

2 objetos, instancia de clase


Persona
P2
P1 :
Persona

Nombre:
Raquel
Altura:175 cm
Peso: 120 lb
Edad: 25
.

Nombre:
Joaquin
Altura:185 cm
Peso: 190 lb
Edad: 31
.

Comer()
Dormir()
Leer()
Escribir()
Hablar()

Comer()
Dormir()
Leer()
Escribir()
Hablar()

Lavadora
marca
modelo
numeroSerie
capacidad
.

agregarRopa()
agregarDeterg(
)
sacarRopa()
Centrifugar()

Clase Encapsula o
agrupa
Atributos +
comportamientos
Atributos
(Caractersticas
)

Comportamient
o
(Acciones)

2 objetos, instancia de clase


Lavadora
m1 :
Lavadora

Marca: LG
Modelo: pqsrt
numeroSerie:123
Capacidad:
250Kg
.

agregarRopa()
agregarDeterg()
sacarRopa()
Centrifugar()

s1

Marca: Whirlpool
Modelo:abcd
numeroSerie: 444
Capacidad:120kg
.

agregarRopa()
agregarDeterg()
sacarRopa()
Centrifugar()

Estructura de una clase en UML


(Lenguaje de modelado Unificado)

Clase Lavadora

objeto

Propiedades fundamentales de la
POO
Abstraccin(tipos de datos abstractos y
clases)
Encapsulado de datos
Ocultacin de datos
Herencia
Polimorfismo
La mayora de lenguajes de programacin
orientado a objetos deben implementar
estos conceptos

Abstraccin
Quitar las propiedades y acciones de
un objeto, para dejar solo aquellas
que sean necesarias.
Ejm:
Alguien puede encontrar ms
atributos o acciones que otra
persona.
De que depende?
Del tipo de problema

Abstraccin.
Vehiculo
Marca
Motor
Chasis

Acelerar()
Embragar()

Vehiculo

Cul esta mal?

Marca
color

Ninguna.
Depende del
problema que
atributos y mtodos
son importantes
Acelerar()

Encapsulamiento
Es el proceso de ocultar todos los
detalles de un objeto que no
contribuyen a sus caractersticas
esenciales.
Esto significa que aquello que est
en interior de la clase est oculto,
solo las interfaces externas pueden
ver otros objetos.

Encapsulamiento
La TV oculta sus operaciones de la
persona que ve

TV

Encapsulamiento. Ocultar o
privado

}
+ Nombre
+ marca
- Resistencias
- Integrados }

atributos
pblicos
Atributos
PRIVADOS

}
+ Encender()
+ Apagar()

Acciones pblicos

-convertirVoltaje(
}
)
- cambiarFrec()

Acciones PRIVADOS

Herencia
La herencia permite que se pueden definir nuevas
clases basadas en clases existentes, lo cual
facilita reutilizar cdigo previamente desarrollado.
Si una clase deriva de otra (extends) hereda
todas sus variables y mtodos.
La clase derivada puede aadir nuevas variables
y mtodos y/o redefinir las variables y mtodos
heredados.
En Java, a diferencia de otros lenguajes
orientados a objetos, una clase slo puede
derivar de una nica clase, con lo cual no es
posible realizar herencia mltiple en base a
clases.

vehiculoAereo p
avion pa = new avion
Herencia
Un avion es un vehiculoAereo,
Avion hereda todas los atributos
y metodos del objeto padre aereo.

Herencia. ejemplo
Un avion es un vehiculo aereo.
Hereda TODOS los atributos y
mtodos de la clase vehiculo aereo
Un helicoptero es un vehiculo aereo
Hereda TODOS los atributos y
mtodos de la clase vehculo aereo

Vehiculo aereo
- n: nombre
+ aumentar()
+ disminuir(int)

avion
moto

pasajero
mivarc: float

carga
mivard: int

+ disminuir(int)
+misuma()
+ usarDisminuir()

Mensajes
Los mensajes son simples llamadas a
las funciones o mtodos del objeto
con el se quiere comunicar para
decirle que haga cualquier cosa.

Paso de mensajes

ControlRemot
o

Televisor

..
.

.
.

Encende
r
Encender()

subirVolumen()
Encender()
Apagar()

Polimorfismo
Es una propiedad que permite enviar
el mismo mensaje a objetos de
diferentes clases, de forma que cada
uno de ellos responde a ese mismo
mensaje de modo distinto
dependiendo de su implementacin.

Polimorfismo. Ejemplo
Avion y Helicoptero tienen el
comportamiento volar()
Ambos tienen el mismo mtodo
Ambos reciben el mismo mensaje
volar()
AMBOS reaccionan de manera
diferente
Porque ambos vuelan de forma
diferente

Volar()

Volar()

Reutilizacin del cdigo


Todas las clases se pueden utilizar
nuevamente.
Es decir, si usted program una
clase.
Puede utilizarla en otro programa, sin
ningn incoveniente.

UML
Unified Modeling Language
Lenguaje de Modelado Unificado.

UML
Lenguaje estandar y universal para :
Organizar el proceso de diseo de tal
forma que los analistas, clientes,
desarrolladores y otras personas
involucradas en el desarrollo del
sistema lo comprenden

UML. diagramas
Elementos grficos que se combinan
para conformar diagramas.
Diagramas de clases
Diagramas de objetos
Diagramas de casos de uso
Diagramas de estado

DIAGRAMA DE CLASES

CLASE
atributos
.

metodos

DIAGRAMA DE OBJETOS

objeto
Valor del atributo

metodos

Breve codificacin
Recordatorio de codificacin en
lenguaje java

Llamada desde principal


Objeto es una instancia de
una clase

Clase. Es plantilla
para crear objetos

Objeto 1 de la claseA
Inst
an c
i ar

Valor atributo 1
Valor atributo 2
Metodo1()
Metodo2()

Clase A
el o
bje
to 1

Objeto 2 de la claseA

Valor atributo 1
Valor atributo2

o2
t
e
j
l ob
e
r
ncia
a
t
s
In
bj
et

Metodo1()
Metodo2()

Metodo1()
Metodo2()

ci
ar
In
st
an

Valor atributo 1
Valor atributo 2

el
o

Objeto 3 de la claseA

Atributo 1
Atributo 2
Metodo1( )
Metodo2( )

Observaciones
Un archivo extensin java tiene un
archivo extensin class.
A veces en un archivo extensin java
puede tener mltiples archivos
extensin class

Observaciones
Maysculas y minsculas si difieren
Nombres de variables
Sentencias por lo general en
minsculas
Toda sentencia finaliza en ;
Tipos de datos (String, int, float, void,
etc)
Retorno de una funcin y su tipo de
dato

Estructura de mtodos
acceso retorno nombre( entradas )
{ return si el tipo de dato es diferente de void
}
public double suma( double x )
{
return (x +2);
}

Estructura de mtodos
acceso retorno nombre( entradas )
{
return
}
public int operacion (int a )
{
return (a );
}

Mtodos setter y getter


Set Por lo general:
reciben un parmetro y no devuelven
nada
Get Por lo general:
no reciben parmetro y devuelven un
valor

Mtodo setter
Establece el valor de los atributos

acceso retorno nombre( entradas


{

public void set( entradas)


return
{
}
}

Mtodo getter
Recupera el valor de los atributos
public tipo get( )
{
return
}

acceso retorno nombre( entradas


{
Return
}

Bibliografa
Cevallos, J. (2011). Curso de Programacin. Mxico: Alfaomega.
Deitel, P., & Deitel, H. (2012). Cmo programar en Java. Mxico:
Pearson.
Joyanes, L (2008). Fundamentos de programacin.Algoritmos,
estructura de datos y objetos. Madrid: McGraw-Hill