Professional Documents
Culture Documents
Primeros conceptos
Ideas bsicas
Paradigmas
El Objeto
La Clase (anticipo)
Manipulacin de objetos
El mtodo main()
IDEAS BSICAS
La programacin orientada a objetos es
una metodologa que descansa en el
concepto de objeto para imponer la
estructura modular de los programas.
Permite comprender el dominio del
problema a resolver, al intentar construir un
modelo del mundo real que envuelve
nuestro sistema. Es decir, la representacin
de este mundo mediante la identificacin
de los objetos que constituyen el
vocabulario del dominio del problema, su
organizacin y la representacin de sus
responsabilidades.
2
IDEAS BSICAS
El paradigma orientado a objetos se basa
en los tres mtodos de organizacin que
utilizamos desde nuestra infancia y en los
que basamos todo nuestro pensamiento:
A) la diferencia entre un objeto y sus
atributos (por ejemplo, entre una
manzana y su sabor o peso),
B) la diferencia entre un objeto y sus
componentes (por ejemplo, entre una
manzana y su piel o semillas) y
C) la formacin y distincin entre clases de
objetos (por ejemplo, entre manzanas
rojas, manzanas verdes, etc.)
3
IDEAS BSICAS
IDEAS BSICAS
Entidades
independientes
Responsabilidades
mensajes
Problemas
PARADIGMA
El filsofo y cientfico Thomas Kuhn dio a paradigma su significado contemporneo, lo
define de la siguiente manera:
PARADIGMA
La programacin Orientada a Objetos (POO) es un paradigma de programacin que usa
objetos y sus interacciones para disear aplicaciones y programas. Est basado en
varias tcnicas, como por ejemplo herencia, abstraccin, polimorfismo y
encapsulamiento.
En sntesis
Qu es un
paradigma?
Conjunto de elementos y reglas.
Brinda un marco para el diseo
y la construccin de Programas.
Secuencia.
Secuencia.
Repeticin.
Repeticin.
Condicional.
Condicional.
Los
Losprogramas
programasestn
estnorganizados
organizadospor:
por:
Descomposicin
Descomposicinfuncional.
funcional.
Flujo
Flujode
deDatos.
Datos.
Mdulos.
Mdulos.
Paradigma
ParadigmaOrientado
OrientadoaaObjetos
Objetos
Los
Lossistemas
sistemasestn
estncompuestos
compuestospor
porun
unconjunto
conjuntode
de
objetos.
objetos.
Los
Losobjetos
objetosson
sonresponsables
responsablesde
dellevar
llevaraacabo
cabociertas
ciertas
acciones.
acciones.
Los
Losobjetos
objetoscolaboran
colaboranpara
parallevar
llevaraacabo
cabosus
sus
responsabilidades.
responsabilidades.
Los
Losprogramas
programasestn
estnorganizados
organizadosen
enbase
baseaaclases
clasesyy
jerarquas
jerarquasde
deherencia.
herencia.
Principios
Principiosdel
delparadigma
paradigmaOO
OOsegn
segnAlan
AlanKay
Kay
(creador
del
Smalltalk)
(creador del Smalltalk)
Todo es un objeto.
Todo es un objeto.
Los objetos se comunican enviando y recibiendo
Los objetos se comunican enviando y recibiendo
mensajes.
mensajes.
Los objetos tienen su propia memoria (en trminos
Los objetos tienen su propia memoria (en trminos
de
deobjetos).
objetos).
10
EL OBJETO
Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de
los objetos que pertenecen al negocio con que estamos trabajando o al problema
con el que nos estamos enfrentando, y con los que podemos interactuar.
Auto
patente
modelo
marca
color
.
arrancar()
detener()
acelerar()
frenar()
.
LA CLASE
A travs del estudio de los objetos se adquiere el conocimiento necesario para,
mediante la abstraccin y la generalizacin, agruparlos segn sus
caractersticas en conjuntos. Estos conjuntos determinan las clases de objetos
con las que estamos trabajando.
En general, primero existen los objetos; luego aparecen las clases en funcin
de la solucin que estemos buscando.
CLASE
OBJETOS
12
En algn punto, la clase es al objeto como el struct a la variable de ese tipo.El mecanismo para la creacin de objetos a partir de la clase (que define sus
caractersticas y comportamiento) se llama instanciacin de la clase
Clase
instanciacin
instanciacin
objeto1
objeto2
13
Autoauto1=newAuto();
clase
variable
operador
constructor
auto2
14
COMPONENTES DE UN OBJETO
EL ESTADO DE UN OBJETO
El estado de un objeto se refiere al conjunto de los
Variables de Instancia
saldo
600
titular
Objeto Persona
Variables de Instancia
Nombre
Juan Perez
16
saldo
600
titular
Objeto Persona
Variables de Instancia
Nombre
Juan Perez
17
18
EL COMPORTAMIENTO DE UN OBJETO
Qu hace un objeto?
Un objeto se define en trminos de su comportamiento.
El comportamiento indica qu sabe hacer el objeto
(determina cuales son sus responsabilidades)
Se especifica a travs del conjunto de mensajes que el
objeto sabe responder: protocolo.
depositar(unMonto)
Objeto
Caja de Ahorro
extraer(unMonto)
saldo()
Cmo lo hace?
La implementacin de un objeto se especifica
a travs de un conjunto de mtodos.
Cuando un objeto recibe un mensaje
responde activando el mtodo asociado.
Es privado del objeto: el que enva el
mensaje delega en el receptor la manera de
resolverlo, sin importarle cmo lo resuelve.
Objeto
Caja de
Ahorro
Mtodos
depositar(unMonto)
extraer(unMonto)
depositar(unMonto)
extraer(unMonto)
saldo()
saldo()
19
saldo
600
titular
Mtodos
depositar(unMonto)
depositar(unMonto)
extraer(unMonto)
extraer(unMonto)
saldo()
saldo()
titular()
titular(unaPersona)
titular()
titular(unaPersona)
Objeto Persona
Variables de Instancia
Nombre
Juan Perez
20
<objetoreceptor>.<nombredelmensaje>(<parmetros>);
21
EJEMPLO DE MENSAJE
Objeto
Caja de Ahorro
Variables de Instancia
saldo
600
titular
Mtodos
depositar(unMonto)
depositar(unMonto)
extraer(unMonto)
extraer(unMonto)
saldo()
saldo()
titular()
titular(unaPersona)
titular()
titular(unaPersona)
CajaDeAhorrounaCuenta=newCajaDeAhorro();
unaCuenta.depositar(100);
22
MTODOS
Los mtodos son la contraparte funcional del mensaje. Expresa la forma de llevar a cabo
la semntica propia de un mensaje particular.
Un mtodo puede realizar bsicamente 3 cosas:
Retornar y terminar.
public void depositar (double monto)
{
this.saldo = this.saldo + monto;
}
public double extraer (double monto)
{
This.saldo = this.saldo monto;
return saldo;
}
Objeto
Caja de
Ahorro
Mtodos
depositar(unMonto)
extraer(unMonto)
depositar(unMonto)
extraer(unMonto)
saldo()
saldo()
23
por valor.
Tener en cuenta que en el caso de parmetros de tipo Objeto, el valor
que contiene es una referencia a un Objeto (como cualquier
variable no primitiva). Por lo tanto, teniendo esa referencia se puede
alterar el estado del objeto referenciado (por el parmetro formal).
En el momento de la invocacin, el parmetro formal copia el contenido
del parmetro real (pasaje de parmetros por valor), pero lo que est
copiando es la referencia del objeto que contiene el parmetro real). O
sea, cualquier alteracin (dentro del mtodo) del estado del objeto
referenciado por el parmetro formal impacta sobre el objeto.
24
Comportamiento
comn entre objetos
Cuntos objetos Caja de
Ahorro habr?
Es necesario especificar el
comportamiento de cada
caja de Ahorro? O el
comportamiento debera ser
comn a todas?
Caja de
Ahorro B
Entonces... cmo
representar este
comportamiento comn,
de manera que cada caja
de ahorro pueda
reutilizarlo?
26
CLASES !
27
Clases
Una clase es una descripcin de un grupo de objetos con:
en trminos coloquiales
la clase
es como si fuera una plantilla
que sirve para
crear los objetos
Definir la forma
30
Especificacin de Clases
Las clases se especifican por medio de un nombre, el estado
interno o estructura que tendrn sus instancias y los mtodos
asociados que definen el comportamiento.
Nombre de Clase:
Comienza con mayscula
y no posee espacios
Atributos (variables de
instancia):
Se escriben en minsculas
y sin espacios
Mtodos:
Para cada uno se debe
especificar como mnimo
el nombre, parmetros y
retorno
31
El constructor
Constructores
public class Vehiculo
{
private String nroPatente;
private String propietario;
public Vehiculo(String patente)
{
this.nroPatente = patente;
}
public Vehiculo(String patente, String propietario)
{
this(patente);
this.propietario= propietario;
}
public Vehiculo()
{}
// mtodos
}
33
Para instanciar una clase, es decir, para crear un objeto de una clase,
se usa el operador new.
La creacin e inicializacin de un objeto involucra los siguientes
pasos:
CuentamiCuenta=newCuenta();
34
Constructores y new
public class Vehiculo
.
{
Vehiculo v1;
private String nroPatente;
Vehiculo v2;
private String propietario;
Especificacin de Clases
public class CajaDeAhorro
{
private double saldo;
private Persona titular;
public CajaDeAhorro()
{
super();
}
36
37
El mtodo main()
38
Algunas definiciones
40
42
Ejemplo
43
Ejemplo
44