Publicado el 14 de Junio del 2019
522 visualizaciones desde el 14 de Junio del 2019
820,8 KB
130 paginas
Creado hace 13a (04/10/2010)
Escuela Politécnica Superior de Ingeniería
Departamento de Ingeniería Industrial
Fundamentos de la informática
4. Programación orientada a objetos con Java
Contenido
n Introducción
n Laprogramaciónorientada aobjetos
n ProgramaciónJava
n Introspección
n UtilidadesdeJava
Programación orientada a objetos con Java
2
Introducción
Análisisydiseñoorientadoaobjetos
n Laprogramaciónorientada aobjetosesunatécnicade
análisisydiseñoqueseenfocaenloselementosdeun
sistema,susatributosyresponsabilidades
n Elmodeloabstractoestáformadodeclases.Unaclase
describeaunconjuntodeobjetosquecompartelos
mismosatributos,comportamientoysemántica
n Unobjetoesunainstanciadeunaclase
Programación orientada a objetos con Java
3
Programación orientada a objetos
Análisisydiseñoorientadoaobjetos
n Lasclasesrepresentanunesquemasimplificadodela
casuísticadeunproblemadeterminado
n Paradiseñarunsistemaorientado aobjetosesnecesario
responderlassiguientespreguntas
n ¿Cuálessonloselementostangiblesdeunsistema?
n ¿Cuálessonsusatributos?
n ¿Cuálessonsusresponsabilidades?
n ¿Cómoserelacionanloselementosdelsistema?
n ¿Quéobjetodebe“saber”...?
n ¿Quéobjetodebe“hacer”...?
Programación orientada a objetos con Java
4
Programación orientada a objetos
Conceptosbásicos
n Encapsulación
n Herencia
n Polimorfismo
Programación orientada a objetos con Java
5
Programación orientada a objetos
Encapsulación
n Laencapsulaciónconsisteenformarun“paquete”conlos
atributos(variables)yelcomportamiento(métodos)de
unobjeto
n Losmétodosformanlamembranaexteriordeunobjeto y
“esconden”losdetallesdeimplementaciónalusuario
Programación orientada a objetos con Java
6
Programación orientada a objetos
Encapsulación
n Laencapsulaciónhacequeunsistemaseamásfácilde
comprenderyfacilitaelmantenimientodeunaaplicación
Atributos
Comportamiento
(métodos)
m1
Programación orientada a objetos con Java
7
Programación orientada a objetos
Herencia
n Laherenciaeslacapacidaddeunaclaseparadefinirseen
“heredar” atributos
términos de otra clase
responsabilidadesdelaclasedeordensuperior
y
Superclase
Bicicleta
Subclases
Bicicleta
de montaña
Bicicleta
de carreras
Tándem
Programación orientada a objetos con Java
y
8
Programación orientada a objetos
Polimorfismo
n El
permite
que
polimorfismo
objetos
pertenecientes a una misma clase “respondan” de
diferentesformasaunmismomensaje
distintos
n Elpolimorfismopermitemodificarelcomportamientode
un método en cada subclase. En este ejemplo,
superclasemascotatienelassubclasesgato,patoyperro.
Elmétodo“saludar”cadasubclaseesdiferente
la
Hola
Miau
Cuac
Guau
En este ejemplo cada tipo de mascota “saluda” de forma distinta
Programación orientada a objetos con Java
9
Programación orientada a objetos
Encapsulación,herenciaypolimorfismo
n Lareutilizacióndecódigoesunadelasgrandesventajas
delaprogramaciónorientadaaobjetos
n Reduce el
tiempo de desarrollo de aplicaciones e
incrementalaproductividaddelosingenierosdesoftware
n Reutilizacióndeclases
n Diseñodeunanuevaclaseapartirdeotra(herencia)
Programación orientada a objetos con Java
10
Programación orientada a objetos
Diagramasdeclases
n EnUMLunaclaseserepresentacomounrectángulo
divididoentrespartes:elnombredelaclase,sus
atributosymétodos.Lasclasesabstractasseidentifican
porlaletracursiva
n Losmétodosdeunaclaseseespecificanindicandoeltipo
deacceso(+,-,#),elnombre,lalistadeparámetrosyel
tipoquedevuelve
n +Accesopúblico
n -Accesoprivado
n #Accesoprotegido
Programación orientada a objetos con Java
11
Programación orientada a objetos
Diagramasdeclases
n Eldiagramadeunaclasemuestraelnombredelaclase,
susatributosymétodos
Programación orientada a objetos con Java
12
Programación orientada a objetos
Diagramasdeclases
n Eldiagramadeclasesofreceunavistageneraldeun
sistema,muestralasclasesylasrelacionesexistentes
entreellas
n El diagrama de
estático, muestra las
interaccionesentreclasesperonoloquesucedecomo
resultadodeesainteracción
clases
es
n Cadadiagramasecomponedeclasesyasociaciones.
Cadaasociaciónafectaaunnúmerodeterminadode
instanciasdeunaclase,denominado“multiplicidad”
Programación orientada a objetos con Java
13
Programación orientada a objetos
Diagramasdeclases
Programación orientada a objetos con Java
14
Programación orientada a objetos
Relacionesentreclases
n Asociación.Relacionainstanciasdedosclases.Existeuna
asociaciónentredosclasescuandounainstanciadeuna
clasedebesabersobreotrainstanciaparallevar acabo
susfunciones
n Agregación.Esuntipodeasociacióndondeunaclase
perteneceaunacolección.Seutilizaundiamanteenel
extremodelaasociacióndelaclasequerepresentael
todo
n Generalización.Indicaunarelacióndeherenciaentredos
clases.Seutilizauntriánguloenelextremodelarelación
paraseñalaralasuperclase
Programación orientada a objetos con Java
15
Programación orientada a objetos
Asociacionesentreclases
n Rol.Seutilizaparaaclararlanaturalezadelaasociación
n Navegabilidad.Laflechadelaasociaciónindicala
direccióndenavegación
n Multiplicidad.Determinaelnúmeroposibledeinstancias
Multipicidad
Significado
0..1
0..*
1
1..*
Ceroounainstancia.Lanotación
n..m indicade n a m instancias
Noexistelímitedeinstancias,desdecerohastaunnúmeroilimitado
Exactamenteunainstancia
Almenosunainstancia
Programación orientada a objetos con Java
16
Programación orientada a objetos
Asociacionesentreclases
n Agregación:Asociaciónquerelaciona aunobjetoquees
partedeotro
n Composición:Agregaciónfuerte,lapartenopuedeexistir
sineltodo
Programación orientada a objetos con Java
17
Programación orientada a objetos
Dependenciasylimitaciones
n Unadependenciaesunarelaciónentredosclases.Sise
produceuncambioenunadeellaspuedeproducir
cambiosenlaotra.Lasdependenciasserepresentancon
líneasdepuntos
n Unalimitaciónesunacondiciónqueseaplicaaldiseño.
Laslimitacionesseexpresanutilizandolossímbolos{}
Programación orientada a objetos con Java
18
Programación orientada a objetos
Dependenciasylimitaciones
Programación orientada a objetos con Java
19
Programación orientada a objetos
Diagramasdeclases
n Lasclasesseagrupanenpaquetes.Elusodepaquetes
permiteorganizardiagramasdeclasescomplejos
Programación orientada a objetos con Java
20
Programación orientada a objetos
¿Cuáleselmodelodeclasesparaundepósitodeagua?
Agregar agua
Desbordamiento
Capacidad
Volumen
actual
Quitar agua
Programación orientada a objetos con Java
21
Programación orientada a objetos
¿Cuáleselmodelodeclasesparaundepósitodeagua?
Elmodelodeclasesestácompuestopor:
n Elementostangibles(objetos)
n Atributos(campos)
n Responsabilidades(operacionesométodos)
n Limitacionesdediseño(contratodelobjeto)
Programación orientada a objetos con Java
22
Programación orientada a objetos
¿Cuáleselmodelodeclasesparaundepósitodeagua?
n Elementostangibles(objetos)
n Depósitodeagua
n Atributos(campos)
n Capacidad(m 3)
n Volumenactual(m 3)
Programación orientada a objetos con Java
23
Programación orientada a objetos
¿Cuáleselmodelodeclasesparaundepósitodeagua?
n Responsabilidades(operacionesométodos)
n Agregaragua(m 3)
n Quitaragua(m 3)
Programación orientada a objetos con Java
24
Programación orientada a objetos
¿Cuáleselmodelodeclasesparaundepósitodeagua?
n Limitacionesdediseño(contratodelobjeto)
n Lacapacidaddeldepósitodebesermayorquecero
n Lacapacidadesconstanteyseexpresaenm3
n Nosepuedequitaraguadeundepósitovacío
n Nosepuedeañadiraguasinoexisteundepósitopara
recogerelaguaencasodedesbordamiento
n Sialañadiraguahaydesbordamiento,elaguaquese
desbordasedebealmacenarenundepósitoauxiliar
n Nosepuedeagregaryquitaraguaalmismotiempo
Programación orientada a objetos con Java
25
Programación orientada a objetos
¿Cuáleselmodelodeclasesparaundepósitodeagua?
Nombre de la
clase
Atributos
Depósito de agua
capacidad
volumenActual
Desbordamiento
Métodos
agregarAgua(cantidad)
quitarAgua(cantidad)
Programación orientada a objetos con Java
26
Programación orientada a objetos
Clasesyobjetos
n Todoslosobjetosdeunaclasecompartenlasmismas
características
Programación orientada a objetos con Java
27
Programación orientada a objetos
Clasesyobjetos
n Apartirdeunaclasesepuedeobtenerunobjeto
(instancia)quesecomunicaconotrosobjetosmediante
mensajes
n Cadaobjetotieneunestadopropio
n Cadaobjetorespondeaunconjuntodepeticiones
definidasenlainterfazdelaclasealaquepertenece
Programación orientada a objetos con Java
28
Programación orientada a objetos
Clasesyobjetos
n Lainterfazofrecealexteriorelcomportamientodel
objeto.Elcódigoylosdatosinternosqueseutilizanpara
responderaunapeticiónsedenominaimplementación
n Unobjetosecomponede:
n Interfaz:quéseofrece
n Implementación:cómoseofrece
Lightbombilla=newLight();
bombilla.on();
Programación orientada a objetos con Java
29
Programación orientada a objetos
Encapsulación
n La encapsulación permite ocultar
funcionalidad
reutilizacióndeobjetos
de
un
objeto. Además,
los datos y la
la
facilita
n Lainterfazdelaclasedeunobjetopermitequeotros
objetosaccedanalosatributosyalosmétodospúblicos
deunobjeto
Programación orientada a objetos con Java
30
Programación orientada a objetos
Clasesysubclases
n Laherenciapermitediseñarclasesapartirdeotras
clases. Una subclase puede añadir o modificar
funcionalidaddelaclasedeordensuperior
la
Programación orientada a objetos con Java
31
Programación orientada a objetos
Clasesysubclases
n Una
subclase
comportamientodelaclasedeordensuperior
puede
ampliar
o
extender
el
Programación orientada a objetos con Java
32
Programación orientada a objetos
Clasesysubclases
n Unasubclasepuedemodificarelcomportamientodela
clasedeordensuperior
Programación orientada a objetos con Java
33
Programación orientada a objetos
Polimorfismoysobreescriturademétodos
n El polimorfismo es
la capacidad de modificar el
comportamientodeunaclasemediantelasobreescritura
demétodos
Programación orientada a objetos con Java
34
Programa
Comentarios de: 4. Programación orientada a objetos con Java (0)
No hay comentarios