22/01/12
Contenidos
! Fundamentos
de
la
POO
! Comportamiento
y
estado
! Clases
y
objetos
en
Java
Introducción
a
la
programación
orientada
a
objetos
Curso
de
Programación
en
Java
Luis
Guerra
[email protected]
Enero
2012
Fundamentos
de
la
POO
Introducción
! Un
paradigma
es
una
forma
de
afrontar
la
construcción
de
código
soGware
! No
hay
paradigmas
mejores
ni
peores
! Todos
Lenen
sus
ventajas
e
inconvenientes
! Hay
disLntos
paradigmas:
POO,
Estructurado,
Funcional,
Lógico,
etc
Programación
orientada
a
objetos
UML
(Unified
Modeling
Language)
! Facilidad
de
diseño
y
relación
con
el
mundo
real
! Reusabilidad
y
facilidad
de
mantenimiento
! Sistemas
más
complejos
! Abstracción
! Trabajo
en
equipo
! Del
lenguaje
máquina
hacia
el
mundo
real
! Resuelve
problemas
complicados.
No
está
pensado
para
tareas
sencillas
! Lenguaje
unificado
de
modelado
! “Planos”
de
la
aplicación.
No
sirve
para
desarrollar,
sino
para
describir
(análisis
y
diseño)
! Se
uLlizan
diferentes
diagramas.
(13
Lpos
en
UML
2.0)
1
Programación
orientada
a
objetos
Objetos
y
clases
Objeto
1
Fruta
! Objetos:
Elementos
que
interactúan
entre
sí
para
conseguir
un
fin
! Autónomos
! Con
una
funcionalidad
concreta
definida
Instancias
de
una
clase
!
Objeto
2
! Clases
! Especificación
de
un
conjunto
de
elementos
! Todo
objeto
pertenece
a
una
clase
Objeto
3
Programa
Objetos
y
clases
Objetos
y
clases
! Los
objetos
Lene
propiedades
que
los
disLnguen
! Comunes
a
todos
los
de
su
clase
! Propias
de
cada
uno
! Los
objetos
interactúan
entre
sí
por
medio
de
mensajes
! Los
objetos
representan
los
conceptos
fundamentales
del
programa,
y
de
su
interacción
surge
la
funcionalidad
Otros
conceptos
importantes
! Encapsulamiento
! Polimorfismo
! Herencia
! …
Se
verán
mas
adelante
! Clases
! Representan
conceptos
o
enLdades
significaLvas
de
un
problema
! Se
pueden
ver
como
planLllas
para
definir
elementos
(objetos)
!
Pueden
estar
directamente
relacionadas
unas
con
otras
! Objetos
! Elementos
con
comportamiento
definido
en
la
clase
y
estado
concreto
Instancias
de
clase
Interactúan
por
medio
de
mensajes
!
!
Comportamiento
y
estado
22/01/12
2
22/01/12
Métodos
y
atributos
Atributos
! Comportamiento:
Describe
los
servicios
que
proporciona
una
clase
(lo
que
se
puede
hacer
con
ella).
Son
los
métodos.
! El
comportamiento
disLngue
a
los
objetos
de
una
clase
de
los
de
otra
! Describen
el
estado
interno
de
cada
objeto
concreto
! Pueden
ser:
! Tipos
básicos
(int,
boolean,
short,
etc)
! Arrays
de
elementos
! Otros
objetos
! Estado:
Describe
el
la
situación
interna
del
objeto.
Existen
varias
formas
de
definir
disLntos
estados.
Son
los
atributos
! El
estado
disLngue
a
los
objetos
de
la
misma
clase:
cada
uno
Lene
su
estado
Atributos
y
variables
Métodos
! Atributo
de
instancia:
Definido
para
las
instancias
de
una
clase.
Una
copia
por
objeto
! Atributo
de
clase:
Definido
para
la
clase.
Una
copia
por
clase
(común
para
todos
los
objetos)
static int numero = 5;
! Variable
local:
Definida
dentro
del
cuerpo
de
un
método.
De
ámbito
restringido
! Definen
el
comportamiento
de
los
objetos
de
una
clase
! Devuelven
un
resultado
! Pueden
necesitar
parámetros
tipo_retorno nombre_método (parámetros) {
código del método
}
Métodos
habituales
Métodos
habituales
! Constructor
! Se
ejecuta
al
crear
un
objeto
! Sirve
para
inicializar
un
objeto
al
crearlo
! Existe
sobrecarga
(disLntos
parámetros)
(para
cualquier
método)
! Coincide
con
el
nombre
de
la
clase
y
no
devuelve
nada
por
definición
(no
se
indica
el
Lpo
de
retorno)
! Destructor
! Se
ejecuta
al
crear
destruir
un
objeto
! No
se
suele
usar:
Java
destruye
los
objetos
automáLcamente
(Recolector
de
Basura)
! Se
Lene
que
sobrescribir
! No
devuelve
nada
por
definición
void finalize()
3
22/01/12
Métodos
habituales
Uso
de
objetos
e
interacción
! Punto
de
entrada
! Método
que
se
invoca
al
comienzo
del
programa
! Al
menos
una
clase
del
programa
debe
tenerlo
(clase
principal)
! Solo
se
ejecuta
el
de
la
clase
principal
! Varias
clases
pueden
tener
punto
de
entrada,
pero
solo
se
ejecutará
el
de
una
de
ellas
public static void main(String[] args)
Clases
y
objetos
en
Java
! Los
objetos
son
instanciaciones
de
las
clases.
Es
necesario
realizar
dicha
instanciación
para
poder
usarlos
! Se
comunican
entre
si
mediante
paso
de
mensajes
! La
invocación
de
los
métodos
es
la
manera
en
la
que
se
realiza
el
paso
de
mensajes
Declaración
de
una
clase
public class NombreClase {
// Atributos
tipo atributo1;
tipo atributo2;
…
// Métodos
tSalida nombreMetodo1 (params) {
}
tSalida nombreMetodo2 (params) {
}
…
// Contenido método 1
// Contenido método 2
}
Declaración
de
una
clase
Creación
de
objetos
public class Perro {
// Atributos
String nombre;
int edad;
}
// Métodos
Perro(String nom) {
}
void ladrar() {
}
this.nombre = nom;
System.out.println(“¡Guau!”);
! Para
poder
usar
un
objeto
hay
que
crearlo:
clase identificador = new clase();
Perro miPerro = new Perro(“Pancho”);
4
22/01/12
Operador
.
this
! El
operador
.
(punto)
permite
acceder
a
los
miembros
de
una
clase.
! Se
usa
tanto
para
atributos
como
para
métodos.
Perro miPerro = new Perro(“Pancho”);
miPerro.edad = 5;
miPerro.ladrar();
! Para
referirse
a
un
objeto
desde
si
mismo,
se
usa
la
palabra
reservada
this
public class Perro {
String nombre;
Perro(String nom) {
}
this.nombre = nom;
}
Uso
de
objetos
Acceso
directo
a
atributos
! Una
vez
creado
(instanciado)
un
objeto,
podemos
enviarle
mensajes
y
modificar
su
estado
!
! Accediendo
a
sus
atributos
(no
se
debe
hacer)
Invocando
métodos
! El
acceso
directo
a
atributos
no
es
recomendable,
porque
revela
la
estructura
interna
del
objeto
! Los
métodos
definen
como
se
debe
usar
un
objeto.
PermiLr
el
acceso
a
los
atributos
es
“dar
vía
libre”
a
manipular
su
estado
sin
control
Perro miPerro = new Perro(“Pancho”);
miPerro.edad = 5;
miPerro.ladrar();
! En
su
lugar
se
deben
definir
métodos
que,
de
forma
genérica,
modifiquen
el
estado
de
acuerdo
a
consideraciones
semánLcas
! Se
debe
prohibir
el
acceso
a
los
atributos
Cohesión
y
acoplamiento
Encapsulación
! Cohesión:
Grado
de
relación
entre
las
diferentes
caracterísLcas
de
un
objeto
! Objeto
con
una
función
muy
bien
definida:
muy
cohesionado
! Objeto
con
muchas
funciones
no
relacionadas:
poco
cohesionado
! Acoplamiento:
Grado
de
dependencia
entre
diferentes
objetos
! Programa
en
el
que
todas
las
clases
Lene
funciones
disLntas
y
! Programa
en
el
que
todas
las
clases
parLcipan
en
todas
las
tareas:
definidas:
Poco
acoplado
muy
acoplado
! Se
debe
maximizar
la
cohesión
de
cada
objeto
y
minimizar
el
acoplamiento
entre
clases
disLntas
! Puede
(y
suele)
haber
disLntos
niveles
de
visibilidad:
! public:
se
puede
acceder
desde
cualquier
lugar
! private:
sólo
se
puede
acceder
desde
la
propia
clase
! pr
Comentarios de: Curso de Programación en Java - Introducción a la Programación orientada a objetos (0)
No hay comentarios