8 traduci da
Post on 20-Feb-2018
228 Views
Preview:
TRANSCRIPT
-
7/24/2019 8 Traduci Da
1/122
2003 Prentice Hall, Inc. Todos los derechos reservados.
Captulo 8 - Programacin !asado en o!"etosContorno
8.1 Introduccin
8.2 La implementacin de un tipo de tiempo de datos abstracta con una clase
Alcance 8.3 Clase
8.4 Control de acceso a los miembros
8.5 En referencia alos diputadosel objeto actual'scon este
8. !bjetos Iniciali"acin Clase# Constructores
8.$ %tili"ar constructores sobrecar&ados
8.8 %so de establecer ' obtener ()todos
8.* Composicin
8.1+ ,ecoleccin de -asura
8.11 (iembros del &rupo esttico
-
7/24/2019 8 Traduci Da
2/122
8.12 /ariables de instancia 0inales
8.13 Creacin de pauetesAcceso 8.14 auete
,eutili"acin 8.15 oftare
8.1 atos abstraccin ' encapsulacin
861$ 7Ejemplo prctico opcional Acerca de los objetos# Comen"ando a pro&ramar
las clases para el Ascensor imulacin
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1 Introduccin
Programacin #rientada a #!"etos $P##%
Encapsuladatos $atri!utos% & m'todos $comportamientos% #!"etos
Permite a los o!"etos para comunicarse
Interfases!ien de(inidas
-
7/24/2019 8 Traduci Da
3/122
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1 Introduccin 7cont. )engua"e de programacin de procedimiento C es un e"emplo
*ccin orientada
)as (unciones son las unidades de programacin
)engua"e de programacin orientado a o!"etos +ava es un e"emplo
#rientado a o!"etos
)as clases son unidades de programacin
unciones omtodos,se encapsulan en clases
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1 Introduccin 7cont.
-
7/24/2019 8 Traduci Da
4/122
ste captulo trata Cmo crear o!"etos Cmo utiliar o!"etos
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.2 La implementacin de un tipo de tiempo de datos
abstracta con una clase
Introducimos clasesTime/ & prue!atiempo Time/."avadeclara clase Time/
TimeTest."avadeclara clase prue!atiempo
clasesp!licasde!en ser declarados en archivos separados
ClaseTime/ no e"ecutar1 por s mismo o tiene m'todoprincipal
-
7/24/2019 8 Traduci Da
5/122
Prue!atiempo, ue tiene m'todo principal, creauna instancia$% &
utilia o!"eto Time/2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Time/."ava
)nea 4
Time/ $su!clase% se e5tiende "ava.lang.#!"ect superclase
)neas 6-8
varia!les privadas
)neas /2-/4
Time/ constructor
a continuacin, invoca el m'todo setTime
-
7/24/2019 8 Traduci Da
6/122
)nea /7
m'todos p!licos)neas /7-2
9'todo setTime esta!lece varia!les privadas de acuerdo a los argumentos
199 0i&.8.1# :ime1.ja;a
2declaracin de la clase 99 :ime1 mantiene la tiende!bject @
pri;adoint
-
7/24/2019 8 Traduci Da
7/122
1199 ase&ura ue cada objeto :ime1 comien"a en un estado co
-
7/24/2019 8 Traduci Da
8/122
24
25
Time/ $su!clase% se e5tiende "ava.lang.#!"ect superclase $captulo 7 analia la herencia%
varia!les privadas $& m'todos% son accesi!les slo a los m'todos de esta clase
9'todo setTime esta!lece varia!les privadas de acuerdo a los argumentos
m'todos p!licos $& varia!les% son accesi!les dondeuiera programa tiene Time/ re(erencia
Constructor Time/ crea o!"eto Time/ entonces invoca el m'todo setTime
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Time/."ava
299 Con;ertir en cadena en formato de
-
7/24/2019 8 Traduci Da
9/122
2*toi&its ecimal0ormat Dnue;oecimal0ormat 7++?
3+
31 ;ol;ertoi&its.format 7
-
7/24/2019 8 Traduci Da
10/122
427
-
7/24/2019 8 Traduci Da
11/122
Inicialia las varia!les de instancia de un o!"eto de clase
:e llama al programa crea una instancia un o!"eto de esa clase Puede tomar argumentos, perono puede devolver valores
Clase puede tener varios constructores, a trav's de la sobrecarga
ClaseTime/ constructor $lneas /2-/4%
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest/."ava
)nea 7;eclarar & crear una instancia de la clase Time/ llamando Time/ constructor
)neas /2-26 TimeTest/ interacta con Time/ llamando m'todos p!licos TI9/
-
7/24/2019 8 Traduci Da
12/122
199 0i&.8.2# :ime:est1.ja;a
299 Clase :ime:est1 para ejercer clase :ime1.
=a;a>.sin&.=!ptionane 3de importacin?
4
5public class:ime:est1 @
$ static ;oid main7trin& ar&s MNpBblicos
8@
*tiempo :ime1 Dne:ime1 7?99 llama :ime1 constructor
1+
1199 ane>ar ;ersin de cadena de tiempo de salida de Cuerdas
12trin& salida DLa
-
7/24/2019 8 Traduci Da
13/122
14time.totandardtrin& 7?
15
199 tiempo de cambio ' aPadir ;e" actuali"ada a la salida
1$time.set:ime7136 2$6 ?
18de salida J DO n tiempo O n%ni;ersal despu)s set:ime es#J
1*time.to%ni;ersaltrin& 7 J
2+ :iempo O ntandard despu)s set:ime es#J time.totandardtrin& 7?
21
2299 tiempo ajustado con ;alores no ;lidos?ane>ar ;e" actuali"ada a la salida
23time.set:ime7**6 **6 **?
24de salida J DO n O nespu)s intentar ajustes no ;lidos#J
25 :iempo O n%ni;ersal#J time.to%ni;ersaltrin& 7 J
2 :iempo O ntandard#J time.totandardtrin& 7?
-
7/24/2019 8 Traduci Da
14/122
2$
;eclarar & crear una instancia de la clase Time/ llamando Time/ constructorTimeTest/ interacta con Time/ llamando m'todos p!licos TI9/
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest/."ava
28=!ptionane.s
-
7/24/2019 8 Traduci Da
15/122
3599 fin de la clase :ime:est1
2003 Prentice Hall, Inc. Todos los derechos reservados.
Alcance 8.3 Clase
-
7/24/2019 8 Traduci Da
16/122
Controlar el acceso alas varia!les & m'todos dela clase?s
p!lico =aria!les & m'todos accesi!les a los clientes de la clase
privado
=aria!les & m'todos ue no son accesi!les a los clientes de la clase
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest2."ava
)neas 7-//rror Compiler - TimeTest2 no puede acceder directamente a los datos privados de Time/
199 0i&.8.3# :ime:est2.ja;a
-
7/24/2019 8 Traduci Da
17/122
299 Los errores resultantes de intentos de acceso a miembros pri;ados de :ime1.
3clase pBblica:ime:est2 @
4
5 static ;oid main7trin& ar&s MNpBblicos
@
$tiempo :ime1 Dne:ime1 7?
8
*time.
-
7/24/2019 8 Traduci Da
18/122
:ime:est2.ja;a#*#
-
7/24/2019 8 Traduci Da
19/122
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.5 En referencia a los diputados el objetoactual 'scon este
Pala!ra claveesta (esta referencia) Permite ue un o!"eto se re(iere a s mismo
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
ThisTest."ava
199 0i&.8.4# :
-
7/24/2019 8 Traduci Da
20/122
5
pBblicaclase:
-
7/24/2019 8 Traduci Da
21/122
18
1*99 fin de la clase :
-
7/24/2019 8 Traduci Da
22/122
)neas 3/-33
este utilia para distinguir entre argumens & varia!les
)neas 37-0
uso e5plcito e implcito ue esto llame to:tandars:tring
2$99 constructor utili"a los nombres de parmetros id)nticos a ;ariable de instancia
2899 nombres?Esto de referencia necesarios para distin&uir entre nombres
2* imple:imepBblico 7int
-
7/24/2019 8 Traduci Da
23/122
399 uso e>plVcito e implVcito esto para llamar totandardtrin&
3$ public trin&buildtrin& 7
38@
3* retorno:
-
7/24/2019 8 Traduci Da
24/122
4*99 tienen ;ariables locales con mismos nombres ue las ;ariables de instancia
5+ ;ol;ertoi&its.format 7este.
-
7/24/2019 8 Traduci Da
25/122
Constructor de la clase llamada a una instancia o!"eto de esa
clase
nuevoNombreClase $argumento/,argumento2, ..., arugment%A
nuevo indica ue se crea nuevo o!"eto
NombreClaseindica el tipo de o!"eto creado
argumentosespeci(ica valores de los argumentos del constructor
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.$ %tili"ar constructores sobrecar&ados
Constructores so!recargados
9'todos $en la misma clase% pueden tener el mismo nom!re ;e!e tener di(erentes listas de par1metros
2003 Prentice Hall, Inc.
Todos los derechos reservados.
-
7/24/2019 8 Traduci Da
26/122
Contorno
Time2."ava
)neas /2-/4
:in argumentos $por de(ecto% constructor
)nea /
@se esto para invocar al constructor Time2 declarado en las lneas 30-33
)neas /8-2/
Constructor so!recargado tiene un argumento int
)neas 2-2B
:egundo constructor so!recargado tiene dos argumentos int
199 0i&.8.5# :ime2.ja;a
299 declaracin de clase :ime2 con constructores sobrecar&ados.
=a;a.te>t.ecimal0ormat 3de importacin?
-
7/24/2019 8 Traduci Da
27/122
4
5public class:ime2 @
int
-
7/24/2019 8 Traduci Da
28/122
1$99 :ime2 constructor#
-
7/24/2019 8 Traduci Da
29/122
Constructor so!recargado tiene un argumento int
:egundo constructor so!recargado tiene dos argumentos int@se esto para invocar al constructor Time2 declarado en las lneas 30-33
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Time2."ava
)neas 30-33
n tercer constructor so!recargado tiene tres argumentos int
)neas 36-0
Cuarta constructor so!recargado tiene argumento Time2
2*99 :ime2 constructor#
-
7/24/2019 8 Traduci Da
30/122
3+ :ime2pBblico 7int
-
7/24/2019 8 Traduci Da
31/122
4399 controles sobre los datos de ;alide"?establecer los ;alores no ;lidos a cero
44 public ;oidset:ime 7int
-
7/24/2019 8 Traduci Da
32/122
5 ;ol;ertoi&its.format 7
-
7/24/2019 8 Traduci Da
33/122
4
5 7DD 7
-
7/24/2019 8 Traduci Da
34/122
199 0i&.8.# :ime:est3.ja;a
299 constructores sobrecar&ados utili"an para iniciali"ar objetos :ime 2.
3ja;a>.sin& importacin.U?
4
5pBblicaclase:ime:est3 @
$ static ;oid main7trin& ar&s MNpBblicos
8@
*:ime2 t1 Dne:ime2 7?99 ++#++#++
1+:ime2 t2 Dne:ime2 72?99 +2#++#++
11:ime2 t3 Dne:ime2 7216 34?99 21#34#++
12:ime2 t4 Dne:ime2 7126 256 42?99 12#25#42
13:ime2 t5 Dne:ime2 72$6 $46 **?99 ++#++#++
-
7/24/2019 8 Traduci Da
35/122
14:ime2 t Dne:ime2 7t4?99 12#25#42
15
1trin& salida DConstruido con#J
1$ O Qt1# todos los ar&umentos en moraJ
18 O QJ t1.to%ni;ersaltrin& 7 J
1* O QJ t1.totandardtrin& 7?
2+
21de salida J DO Q:2#
-
7/24/2019 8 Traduci Da
36/122
2$ O QJ t3.totandardtrin& 7?
Instanciar cada re(erencia Time2 usando un constructor di(erente2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest3."ava
28
2*de salida J DO nt4#
-
7/24/2019 8 Traduci Da
37/122
3
3$de salida J DO Q:# t4 objeto :ime2 especificadoJ
38 O QJ t.to%ni;ersaltrin& 7 J
3* O QJ t.totandardtrin& 7?
4+
41=!ptionane.s
-
7/24/2019 8 Traduci Da
38/122
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.8 %so de establecer ' obtener ()todos 9'todo de acceso $getm'todo% m'todop!lico
Permitir a los clientes para leerlos datos privados
9'todo mutador $m'todoset% m'todop!lico
Permitir a los clientes para modi(icarlos datos privados
2003 Prentice Hall, Inc.
Todos los derechos reservados.
ContornoTime3."ava
-
7/24/2019 8 Traduci Da
39/122
)neas 6-8
varia!les privadas no pueden acceder directamente a los o!"etos en di(erentes clases
199 0i&.8.$# :ime3.ja;a
299 declaracin de clase :ime3 con el sistema ' obtener m)todos.
=a;a.te>t.ecimal0ormat 3de importacin?
4
5public class:ime3 @
int
-
7/24/2019 8 Traduci Da
40/122
12 :ime3pBblica7
13@
14 esto7+6 +6 +?99 in;ocar constructor :ime3 con tres ar&umentos
15
1
1$ 99 :ime3 constructor#
-
7/24/2019 8 Traduci Da
41/122
25@
2 este7
-
7/24/2019 8 Traduci Da
42/122
31@
32set:ime 7
-
7/24/2019 8 Traduci Da
43/122
44 99 Comprobaciones de ;alide" sobre los datos?establecer los ;alores no ;lidos a cero
45 public ;oidset:ime 7int
-
7/24/2019 8 Traduci Da
44/122
5$
9'todos set permite a los o!"etos para manipular varia!les privadas
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Time3."ava
)neas B2-8B
>eci!e m'todos permiten o!"etos para leer varia!les privadas
58 99 /alidar ' ajustar los minutos
5* public ;oidset(inute 7intm
+@
1minutos D 77m D+FF m G+m# +?
2
-
7/24/2019 8 Traduci Da
45/122
3
4 99 /alidar ' establecer se&undos
5 public ;oidsetecond 7ints
@
$se&undos D 77 D + FF s G+s#H +?
8
*
$+ 99 !btener ()todos
$1 99 !btener ;alor de la
-
7/24/2019 8 Traduci Da
46/122
$
$$
99 !btener ;alor minuto
$8 public int&et(inute 7
$*@
8+ ;ol;erminutos?
81
82
>eci!e m'todos permiten o!"etos para leer varia!les privadas
2003 Prentice Hall, Inc.
Todos los derechos reservados.
ContornoTime3."ava
83 99 !btiene se&undo ;alor
84 public int&etecond 7
-
7/24/2019 8 Traduci Da
47/122
85@
8
;ol;er
se&undo?
8$
88
8* 99 Con;ertir en cadena en formato uni;ersal de tiempo
*+ to%ni;ersaltrin& publictrin& 7
*1@
*2toi&its ecimal0ormat Dnue;oecimal0ormat 7++?
*3
*4 ;ol;ertoi&its.format 7&etWour 7 J#J
*5toi&its.format 7&et(inute 7 J#J
*toi&its.format 7&etecond 7?
*$
-
7/24/2019 8 Traduci Da
48/122
*8
**
99 Con;ertir en cadena en formato de
-
7/24/2019 8 Traduci Da
49/122
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest."ava
)neas 8 & /B
;eclarar & crear una instancia de o!"eto Time3
)neas 24 & 3/
+Te5tields permiten al usuario especi(icar horas.
199 0i&.8.8# :ime:est4.ja;a
299 emostracin del conjunto de clases :ime3 ' obtener m)todos.
3importja;a.at. U?
4ja;a.at.e;ent importacin.U?
-
7/24/2019 8 Traduci Da
50/122
5ja;a>.sin& importacin. U?
$public class:ime:est4e>tiende=AppletimplementaActionListener @
8 tiempo :ime3 pri;ado?
*
1+ pri;ado=Label tI0ield
-
7/24/2019 8 Traduci Da
51/122
18
1* 99 !btener panel de contenido del applet ' cambiar su tra"ado a 0loLa'out
2+Container contenedor D &etContentane 7?
21container.setLa'out 7ne0loLa'out 7?
22
23 99 Establecer
-
7/24/2019 8 Traduci Da
52/122
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest."ava
)nea 3/
+Te5tield permite al usuario especi(icar minutos
)nea 3B
+Te5tield permite al usuario especi(icar segundos
2* 99 Establecer minuteLabel ' minute0ield
3+minuteLabel Dne=Label7(inuto et?
31minute0ield Dne=:e>t0ield 71+?
32contenedor.add 7minuteLabel?
-
7/24/2019 8 Traduci Da
53/122
33contenedor.add 7minute0ield?
34
35 99 Establecer secondLabel ' second0ield
3secondLabel Dne=Label7et e&undo?
3$second0ield Dne=:e>t0ield 71+?
38contenedor.add 7secondLabel?
3*contenedor.add 7second0ield?
4+
41 99 Establecer displa'0ield
42displa'0ield Dne=:e>t0ield 73+?
43displa'0ield.setEditable7false?
44contenedor.add 7displa'0ield?
45
-
7/24/2019 8 Traduci Da
54/122
4 99 Establecer ticX-utton
4$ticX-utton Dne=-utton7A&re&ar 1 a e&unda?
48contenedor.add 7ticX-utton?
4*
5+ 99 ,e&istrar controladores de e;entos?este applet es el ActionListener6
51 99 Yue contiene el m)todo actionerformed ue se llamar a
52 99 e;entos de accin man&o &enerados por
-
7/24/2019 8 Traduci Da
55/122
+Te5tield permite al usuario especi(icar minutos
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest."ava
)neas B/-B
)neas BB-80
)neas 83-86 TimeTest4 utilia m'todos set Time3 esta!lecer varia!les privadas Time3
58
5*ispla':ime 7?99 actuali"ar te>to en displa'0ield ' barra de estado
+
199 fin del m)todo init
2
-
7/24/2019 8 Traduci Da
56/122
3 99 Controlador de e;entos para e;entos de botn ' :e>t0ield
4 public ;oidactionerformed 7ActionE;ent e;ento
5@
99 roceso e;ento ticX-utton
$ si7e;ent.&etource 7 DD ticX-utton
8ticX 7?
*
$+ 99 roceso e;ento
-
7/24/2019 8 Traduci Da
57/122
$ 99 roceso e;ento minute0ield
$$ else if 7e;ent.&etource7 DD minute0ield @
$8time.set(inute 7Inte&er.parseInt 7e;ento.&etActionCommand 7?
$*minute0ield.set:e>t 7?
8+
81
82 99 roceso e;ento second0ield
83 else if 7e;ent.&etource7 DD second0ield @
84time.setecond 7Inte&er.parseInt 7e;ento.&etActionCommand 7?
85second0ield.set:e>t 7?
8
TimeTest4 utilia m'todos set Time3 esta!lecer varia!les privadas Time3
2003 Prentice Hall, Inc.
Todos los derechos reservados.
-
7/24/2019 8 Traduci Da
58/122
Contorno
TimeTest."ava
)neas 74-76 TimeTest4 utilia Time3 o!tener m'todos para leer varia!les privadas Time3
8$
88ispla':ime 7?99 actuali"ar te>to en displa'0ield ' barra de estado
8*
*+99 fin del m)todo actionerformed
*1
*2 99 -arra de estado de actuali"acin displa'0ield ' subpro&rama de contenedor
*3
pBblica
ispla':ime
;oid
7
*4@
*5displa'0ield.set:e>t 7Wora#J time.&etWour 7J? (inuto#J
*time.&et(inute 7J6 en se&undo lu&ar#J time.&etecond 7?
-
7/24/2019 8 Traduci Da
59/122
*$
*8s
-
7/24/2019 8 Traduci Da
60/122
11+
111 si7time.&et(inute 7 DD +
112time.setWour 77time.&etWour 7 J 1 24?
113
114
11599 fin del m)todo &arrapata
11
11$99 fin de la clase :ime:est4
TimeTest4 utilia m'todos get Time3 leer varia!les privadas Time3
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest."ava
-
7/24/2019 8 Traduci Da
61/122
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest."ava
2003 Prentice Hall, Inc.
Todos los derechos reservados.
ContornoTimeTest."ava
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.* Composicin
Composicin Clase contiene re(erencias a o!"etos de otras clases
stas re(erencias son miem!ros
-
7/24/2019 8 Traduci Da
62/122
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
;ate."ava
)nea
Clase echa encapsula datos ue descri!e la (echa
)neas //-20
echa constructor crea una instancia del o!"eto ;ate !asado en argumentos especi(icados
199 0i&.8.*# ate.ja;a
299 declaracin de la clase ate.
3
4claseatepBblica@
-
7/24/2019 8 Traduci Da
63/122
5 mesint pri;ado?99 12.+1
dVaint pri;ado?99 131 basado en meses
$ aPosint pri;ado?99 cualuier aPo
8
* 99 Constructor# llamar c
-
7/24/2019 8 Traduci Da
64/122
18toatetrin& 7?
1*
2+99 fin del constructor ate
21
22 99 ()todo de utilidad para confirmar el ;alor adecuado meses
23 pri;ada intc
-
7/24/2019 8 Traduci Da
65/122
;ate."ava
2$
28 else@99 meses no es ;lido
2*'stem.out.println7mes In;lido 7J test(ont< J
3+ one a 1.?
31 return 1?99 mantener objeto en estado consistente
32
33
3499 fin del m)todo c
-
7/24/2019 8 Traduci Da
66/122
3* intda'ser(ont< MN D
4+@+6 316 286 316 3+6 316 3+6 316 316 3+6 316 3+6 31?
41
42 99 Comprobar si el dVa en el ran&o de mes
43 si7testa'+FF testa' GD da'ser(ont< MmesesN
44 ;ol;ertesta'?
45
4 99 Comprobar aPo bisiesto
4$ si7mes DD2FF testa' DD2*FF 7aPo 4++DD+KK
487aPo 4DD+FF aPos 1++Z D +
4* ;ol;ertesta'?
5+
51'stem.out.println7dVa In;lido 7J testa' J pone a 1.?
-
7/24/2019 8 Traduci Da
67/122
52
53 retorno1?99 mantener objeto en estado co
-
7/24/2019 8 Traduci Da
68/122
2
399 fin de la clase ate
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
mplo&ee."ava
)neas B-8
mpleado se compone de dos re(erencias a o!"etos ;ate
199 0i&.8.1+# Emplo'ee.ja;a
299 declaracin de clase Empleado.
3
4Empleadopublic class@
-
7/24/2019 8 Traduci Da
69/122
5 primerQombre pri;atetrin&?
lastQame pri;atetrin&?
$ 0ec
-
7/24/2019 8 Traduci Da
70/122
18
1*
2+ 99 Con;ertir Empleado a formato de cadena
21 public trin&toEmplo'eetrin& 7
22@
23 ;ol;erlastQame J6J firstQame J
24 Contratado#J
-
7/24/2019 8 Traduci Da
71/122
Contorno
mplo&eeTest."ava
199 0i&.8.11# Emplo'ee:est.ja;a
299 emostracin de un objeto con un objeto miembro.
=a;a>.sin&.=!ptionane 3de importacin?
4
5public classEmplo'ee:est @
$ static ;oid main7trin& ar&s MNpBblicos
8@
*0ec
-
7/24/2019 8 Traduci Da
72/122
12
13=!ptionane.s
-
7/24/2019 8 Traduci Da
73/122
;evuelve memoria para sistema de
+ava realia esto de (orma autom1tica
o!"eto marcado para la recoleccin de !asura si no ha& re(erencias
al o!"eto
9'todo (inaliador ;evuelve recursos al sistema de
+ava proporciona m'todo(inalie ;e(inido en"ava.lang.#!"ect
>eci!e ningn par1metro
;evolucionesvaco
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.11 (iembros del &rupo esttico
pala!ra clavestatic
-
7/24/2019 8 Traduci Da
74/122
varia!le de claseest1tica
In(ormacin de toda clase
Todos los o!"etos de clase comparten mismos datos
l acceso a una clasep!lica ?smiem!ros est1ticos Cali(icar el nom!re del miem!ro con el nom!re de clase & un
punto $.%
por e"emplo, 9ath.random $%2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
mplo&ee."ava
)nea 6
mpleado o!"etos comparten una instancia de recuento
-
7/24/2019 8 Traduci Da
75/122
)neas 23-28
:e llama al mpleado est1 marcado para la recoleccin de !asura
199 0i&.8.12# Emplo'ee.ja;a
299 declaracin de clase Empleado.
3Empleadopublic class@
4 primerQombre pri;atetrin&?
5 lastQame pri;atetrin&?
static int pri;adocount D +?99 nBmero de objetos en la memoria
$
8 99 Iniciali"ar empleado6 aPadir 1 a recuento esttica '
* 99 Cadena de salida ue indica ue el constructor fue llamado
1+ EmpleadopBblico7trin& primero6 Cadena pasado
11@
-
7/24/2019 8 Traduci Da
76/122
12firstQame D primero?
13lastQame D Bltimo?
14
15JJ cuentan?99 incrementa el contador esttico de empleados
1'stem.out.println7constructor de Empleado#J
1$Qombre JJ lastQame?
18
1*
2+ 99 ,estar 1 a recuento esttica al recolector de basura
21 99 llamadas finali"an limpiar objeto ' trin& salida
22 99 Indica ue finali"e fue llamado
23 prote&ido;oidfinali"e 7
24@
-
7/24/2019 8 Traduci Da
77/122
25count?99 decremento recuento esttica de los empleados
2'stem.out.println7finali"ador Empleado#J
2$Qombre JJ Apellido J? count DJ count?
28
2*
mpleado o!"etos comparten una instancia de recuento
:e llama al mpleado est1 marcado para la recoleccin de !asura
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
mplo&ee."ava
)neas 3-6
m'todo est1tico accede est1tica varia!le cuenta
-
7/24/2019 8 Traduci Da
78/122
3+ 99 !btener primero nombre
31 public trin&&et0irstQame 7
32@
33 ;ol;erfirstQame?
34
35
3 99 !btener apellido
3$ public trin&&etLastQame 7
38@
3* ;ol;erlastQame?
4+
41
42 99 ()todo esttico para obtener el ;alor de conteo esttico
-
7/24/2019 8 Traduci Da
79/122
43 int&etCountstatic7
44@
45 recuento de retorno?
4
4$
4899 fin de la clase Empleado
m'todo est1tico accede est1tica varia!le cuenta
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
mplo&eeTest."ava
)nea /2 mplo&eeTest puede invocar mpleado m'todo est1tico, a pesar de los empleados no ha
creado una instancia
-
7/24/2019 8 Traduci Da
80/122
-
7/24/2019 8 Traduci Da
81/122
14 99 Crear dos empleados?conteo debe ser 2
15e1 Empleado DneEmpleado 7usan6anadero?
1e2 Empleado DneEmpleado 7-ob6=ones?
1$
18 99 emostrar ue cuenta es 2 despu)s de la creacin de dos empleados
1*de salida J DO n O nEmplo'ees despu)s de instancias#J
2+ O Q;Va e1.&etCount 7#J e1.&etCount 7 J
21 O Q;Va e2.&etCount 7#J e2.&etCount 7 J
22 O Q;Va Emplo'ee.&etCount 7#J Emplo'ee.&etCount 7?
23
24 99 !btener los nombres de los empleados
25de salida J DO n O nEmplo'ee 1#J e1.&et0irstQame 7 J
2 J E1.&etLastQame 7 JO nEmplo'ee 2#J
-
7/24/2019 8 Traduci Da
82/122
2$e2.&et0irstQame 7 JJ e2.&etLastQame 7?
28
mplo&eeTest puede invocar mpleado m'todo est1tico, a pesar de los empleados no ha creado una
instancia
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contornomplo&eeTest."ava
)nea 34
Pide mecanismo autom1tico de recoleccin de !asura de +ava
2* 99 Contador de referencia de disminucin para cada objeto Empleado?en esto
3+ 99 Ejemplo6 slo
-
7/24/2019 8 Traduci Da
83/122
32e1 Dnull?
33e2 Dnull?
34
35'stem.&c 7?99 su&ieren llamada al recolector de basura
3
3$ 99 Espectculo recuento Empleado despu)s de llamar recolector de basura?contar
38 99 (ostrado puede ser +6 1 o 2 en funcin de si recolector de basura
3* 99 Ejecuta inmediatamente ' nBmero de Empleado objetos reco&idos
4+de salida J DO n O nEmplo'ees despu)s 'stem.&c 7#J
41Emplo'ee.&etCount 7?
42
43=!ptionane.s
-
7/24/2019 8 Traduci Da
84/122
45
4'stem.e>it 7+?
4$
48
4*99 fin de la clase Emplo'ee:est
Empleado constructor# usan -aXer6
Empleado constructor# -ob =ones
Empleado finali"ador# usan panadero?count D 1
Empleado finali"ador# -ob =ones?count D +
Pide mecanismo autom1tico de recoleccin de !asura de +ava
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.12 /ariables de instancia 0inales
pala!ra clave(inal
-
7/24/2019 8 Traduci Da
85/122
Indica ue la varia!le no es modi(ica!le
Cualuier intento de modi(icarresultados varia!les (inales en error
int (inal privadoIC>9T#D 4A ;eclaraincrementovaria!lecomo unaconstante
o *plicaprincipio de privilegios mnimos
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
IncrementTest."ava
199 0i&.8.14# Increment:est.ja;a
299 Iniciali"ar una ;ariable final.
3importja;a.at. U?
4ja;a.at.e;ent importacin.U?
-
7/24/2019 8 Traduci Da
86/122
5ja;a>.sin& importacin. U?
$public classIncrement:este>tiende=AppletimplementaActionListener @
8 pri;adoincrement!bject Incremento?
* botnpri;ada=-utton?
1+
11 99 Confi&urar S%I
12 public ;oidinit 7
13@
14increment!bject DneIncremento 75?
15
1Container contenedor D &etContentane 7?
1$
-
7/24/2019 8 Traduci Da
87/122
18button Dne=-utton7Wa&a clic para aumentar?
1*button.addActionListener 7t
-
7/24/2019 8 Traduci Da
88/122
31
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Increment."ava
)nea 36pala!ra clave (inal declara IC>9T# tan constante
)nea /
ltimo incremento varia!le de!e ser inicialiado antes de usarlo
3299 clase ue contiene la ;ariable constante
33Incrementoclase@
34 intcuentapri;adaD +?99 nBmero de incrementos
-
7/24/2019 8 Traduci Da
89/122
35 pri;ada int:otal D+?99 total de todos los incrementos
3 int final pri;adoIQC,E(EQ:!?99 /ariable constante
3$
38 99 Iniciali"ar incremento constante
3* IncrementopBblico 7intincrement/alue
4+@
41 IQC,E(EQ:!D increment/alue?99 /ariable intiali"e constante 7una ;e"
42
43
44 99 APadir IQC,E(EQ:! total ' a&re&ar 1 para contar
45 pBblicasubasta;oid7
4@
4$totales J D IQC,E(EQ:!?
-
7/24/2019 8 Traduci Da
90/122
48JJ cuentan?
4*
5+
51 99 e;uel;e representacin trin& de datos de un objeto Incremento
52 toIncrementtrin& publictrin& 7
53@
54 retornoespu)s de la subastaJ count J# :otal DJ totales?
55
5
5$99 fin Incremento clase
pala!ra clave (inal declara IC>9T# tan constanteltimo incremento varia!le de!e ser inicialiado antes de usarlo
2003 Prentice Hall, Inc. Todos los derechos reservados.
-
7/24/2019 8 Traduci Da
91/122
Increment:est.ja;a#4+# incremento ;ariable podrVa no
-
7/24/2019 8 Traduci Da
92/122
om!re de dominio de Internet >everse
por e"emplo,com.deitel
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Time/."ava
)nea 3
Clase Time/ se coloca en este pauete
)nea 3
Clase Time/ est1 en el directorio com G ;eitel G "htp4 G ch08
-
7/24/2019 8 Traduci Da
93/122
)nea 4
clase importacin ;ecimalormat del pauete "ava.te5t
199 0i&.8.1# :ime1.ja;a
2declaracin de la clase 99 :ime1 mantiene la
-
7/24/2019 8 Traduci Da
94/122
12 99 :ime1 constructor iniciali"a cada ;ariable de instancia a cero?
13 99 Ase&ura ue cada objeto :ime1 comien"a en un estado co
-
7/24/2019 8 Traduci Da
95/122
25se&undos D 77 D+FF s G+s#H +?
2
2$
Clase Time/ se coloca en este pauete
clase importacin ;ecimalormat del pauete "ava.te5t
Clase Time/ est1 en el directorio com G ;eitel G "htp4 G ch08
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Time/."ava
)nea 3/
;ecimalormat del pauete "ava.te5t
28 99 Con;ertir en cadena en formato uni;ersal de tiempo
-
7/24/2019 8 Traduci Da
96/122
2* to%ni;ersaltrin& publictrin& 7
3+@
31toi&its ecimal0ormat Dnue;oecimal0ormat 7++?
32
33 ;ol;ertoi&its.format 7
-
7/24/2019 8 Traduci Da
97/122
42 retorno 7DD 7
-
7/24/2019 8 Traduci Da
98/122
-
7/24/2019 8 Traduci Da
99/122
*
1+ public class :ime:est1 @
11
12 static ;oid main7trin& ar&s MNpBblicos
13 @
14 :ime1 tiempo D nue;o :ime1 7? 99 llama :ime1 constructor
15
1 99 Ane>ar Cadena ;ersin de tiempo de salida de Cuerdas
1$ trin& salida D La
-
7/24/2019 8 Traduci Da
100/122
22 time.set:ime 7 13 6 2$ 6 ?
23 de salida J D O n tiempo O n%ni;ersal despu)s set:ime es# J
24 time.to%ni;ersaltrin& 7 J
25 :iempo O ntandard despu)s set:ime es# J time.totandardtrin& 7?
2
clase importacin Time/ del pauete com.deitel."htp.ch08
clase +#ptionPane importacin de pauete "ava5.sFingTimeTest/ puede declarar o!"eto Time/
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
TimeTest/."ava
2$ 99 :iempo ajustado con ;alores no ;lidos? ane>ar ;e" actuali"ada a la salida
-
7/24/2019 8 Traduci Da
101/122
28 time.set:ime 7 ** 6 ** 6 ** ?
2* de salida J D O n O nespu)s intentar ajustes no ;lidos# J
3+ :iempo O n%ni;ersal# J time.to%ni;ersaltrin& 7 J
31 :iempo O ntandard# J time.totandardtrin& 7?
32
33 =!ptionane.s
-
7/24/2019 8 Traduci Da
102/122
2003 Prentice Hall, Inc. Todos los derechos reservados.
Acceso 8.14 auete
*cceso Pauete =aria!le o m'todo no tiene modi(icador de acceso de miem!ros
2003 Prentice Hall, Inc.
Todos los derechos reservados.
ContornoPacage;ataTest."ava
)nea /0
Instanciar re(erencia a Pacage;ata o!"eto )neas /3-22 Pacage;ataTest puede acceder a los datos
Pacage;ata, de!ido a ue cada clase comparte mismo pauete
199 0i&.8.18# acXa&eata:est.ja;a
-
7/24/2019 8 Traduci Da
103/122
-
7/24/2019 8 Traduci Da
104/122
15
1 99 datos de acceso pauete de cambio de objeto pacXa&eata
1$ pacXa&eata.number D $$ ?
18 pacXa&eata.strin& D Soodb'e ?
1*
2+ 99 Ane>ar representacin de cadena de pacXa&eata de salida
21 J D salida ;alores O nespu)s cambiante# O n J
22 pacXa&eata.toacXa&eatatrin& 7?
23
24 =!ptionane.s
-
7/24/2019 8 Traduci Da
105/122
Pacage;ataTest puede acceder a los datos Pacage;ata, de!ido a ue cada clase comparte mismo
pauete
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Pacage;ataTest."ava )nea 33 o modi(icador de acceso, por lo ue la clase tiene varia!les pauete
de acceso
2$ 'stem.e>it 7 + ?
28
2*
3+ 99 fin de la clase acXa&eata:est
31
-
7/24/2019 8 Traduci Da
106/122
32 99 clase con ;ariables de instancia de acceso pauete
33 clase acXa&eata @
34 int numero? ;ariable de instancia con acceso de pauete 99
35 trin& cadena? ;ariable de instancia con acceso de pauete 99
3
3$ 99 Constructor
38 pBblica acXa&eata 7
3*@
4+ QBmero D + ?
41 cadena D Wola ?
42
43
44 99 e;uel;e acXa&eata objeto representacin de cadena
-
7/24/2019 8 Traduci Da
107/122
45 pBblica toacXa&eatatrin& trin& 7
4 @
4$ retornoQBmero# J nBmero J cadena# J cadena?
48
4*
5+ 99 fin de la clase acXa&eata
o modi(icador de acceso, por lo ue la clase tiene varia!les pauete de acceso2003 Prentice Hall, Inc. Todos los derechos reservados.
,eutili"acin 8.15 oftare
+ava 9arco para lograr la reutiliacin del so(tFare
l desarrollo r1pido de aplicaciones $>*;%
por e"emplo, la creacin de una aplicacin E@I r1pidamente
2003 Prentice Hall, Inc. Todos los derechos reservados.
-
7/24/2019 8 Traduci Da
108/122
8.1 atos abstraccin ' encapsulacin
l ocultamiento de in(ormacin structura de datos de la pila
ltimo en entrar, primero en salir $)I#%
;esarrollador crea pila
#culta pila detalles de implementacin ?s de los clientes
*!straccin de datos Tipos a!stractos de datos $T*;s%
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1 atos abstraccin ' encapsulacin 7Cont.
>esumen Tipo de datos $*;T% Cola )nea en la tienda de comesti!les
-
7/24/2019 8 Traduci Da
109/122
Primero en entrar, primero en salir $I#%
Poner en cola para colocar o!"etos en la cola
Juitar de la cola para retirar o!"etos de la cola
nueue & deueue esconden representacin de datos interna
2003 Prentice Hall, Inc. Todos los derechos reservados.
861$ 7Ejemplo prctico opcional Acerca de los
objetos# Comen"ando a pro&ramar las clases para elAscensor imulacin
=isi!ilidad *plicar modi(icadores miem!ro de acceso a miem!ros de laclase
p!licas m'todos
para proporcionar servicios a los clientes
-
7/24/2019 8 Traduci Da
110/122
privados de varia!les
Promover la encapsulacin
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
;iagrama de clases $@9)% 9odi(icadores 9iem!ro de acceso
p!lico ;enotado por el signo m1s $ K%
privado
;enotado por el signo menos $ -%
2003 Prentice Hall, Inc. Todos los derechos reservados.
)a ig 8./7 ;iagrama de clases con anotaciones de visi!ilidad.
iso
- loorum!erL ntero
-
7/24/2019 8 Traduci Da
111/122
- CapacidadL Integer D /
Ele;ator-utton
- PrensadoL Moolean D (alse
K >esetMutton $%L void
K PressMutton $%L void
Ele;atoroor
- *!iertoL Moolean D (alse
K #pen;oor $%L void
K Close;oor $%L voidLu"
- )ight#nL Moolean D (alse
K Turn#n)ight $%L void
K Turn#(()ight $%L void
Campana
K >ingMell $%L void
Ele;ator
-
7/24/2019 8 Traduci Da
112/122
K >esetMutton $%L void
K PressMutton $%L void
ersona
- I;L ntero
- n movimientoL Moolean D true
K ;oor#pened $%L void
Ele;ador
- n movimientoL Moolean D (alse
- ConvocadoL Moolean D (alse
- CurrentloorL Integer D /
- ;estinationloorL Integer D 2
- CapacidadL Integer D /
- TravelTimeL Integer D 4
K =ia"e $%L void
K >euestlevator $%L void
K nterlevator $%L void
K 5itlevator $%L void
K ;epartlevator $%L void
-
7/24/2019 8 Traduci Da
113/122
0looroor
- *!iertoL Moolean D (alse
K #pen;oor $%L void
K Close;oor $%L void
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
avega!ilidad Indiue en u' direccin una asociacin puede navegarse *&udar a los programadores a determinar u' o!"etos necesitanre(erencias a otros o!"etos
2003 Prentice Hall, Inc. Todos los derechos reservados.
La 0i& 8.2+ ;iagrama de clases con la navega!ilidad./
/
/
/
2
-
7/24/2019 8 Traduci Da
114/122
2
/
/
//
/
/
/
/
/
2
/
/
/
/
/
ersona
0looroorLu"
iso
Ele;ator
-
7/24/2019 8 Traduci Da
115/122
0loor-utton
Ele;atoroor
Ele;ador
Ele;ator-utton
Campana
:olicitudes
Prensas
Prensas
>ides:eNales para mover
>esta!lece
>esta!lece
Camina a trav's de
*!re
*!re/
*nillos
*ctiva G desactiva
-
7/24/2019 8 Traduci Da
116/122
:eNales llegada
/
/
//
pasa"ero
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
Implementacin Ingeniera directa
Trans(ormar diseNo $es decir, diagrama de clases% a cdigo
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
Eeneramos cdigo esueleto con nuestro diseNo @tilice la clase *scensor como e"emplo
Cuatro pasosL
-
7/24/2019 8 Traduci Da
117/122
@se el nom!re en primer compartimiento para declarar clase
p!lica
Constructor vaco
@tilice atri!utos en segundo compartimiento para declarar
varia!les de instancia
@se asociaciones en diagrama de clases $ig. 3./7% para declarar
re(erencias a o!"etos @tilice las operaciones en el tercer compartimiento para declarar
m'todos
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
aso 1
-
7/24/2019 8 Traduci Da
118/122
pu!lic class *scensor O
p!lico *scensor $% O
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
aso 2pu!lic class *scensor O
GG atri!utos
private !oolean movimientoA
private !oolean convocadoA
privadoint currentloor D / A
privadoint destinationloor D 2 A
-
7/24/2019 8 Traduci Da
119/122
private int capacidad D / A
private int Traveltime D 4 A
GG constructor
p!lico *scensor $% O
2003 Prentice Hall, Inc. Todos los derechos reservados.
8.1$ Acerca de los objetos 7cont.
aso 3
pu!lic class *scensor O
GG atri!utos
private !oolean movimientoA
private !oolean convocadoA
-
7/24/2019 8 Traduci Da
120/122
privadoint currentloor D / A
privadoint destinationloor D 2 A
private int capacidad D / A
private int Traveltime D 4 A
GG asociada o!"etos
privada elevator;oor levator;oorA
privado levatorMutton elevatorMuttonA
privado Campana campanaA
GG constructor
p!lico *scensor $% O
2003 Prentice Hall, Inc. Todos los derechos reservados.
-
7/24/2019 8 Traduci Da
121/122
8.1$ Acerca de los objetos 7cont.
aso 4
pu!lic class *scensor O
GG atri!utos
privado!oolean movimientoA
private !oolean convocadoAprivadoint currentloor D / A
privadoint destinationloor D 2 A
privadoint capacidad D / A
private int Traveltime D 4 A
GG asociada o!"etos
privada elevator;oor levator;oorA
-
7/24/2019 8 Traduci Da
122/122
privado levatorMutton elevatorMuttonA
privado Campana campanaA
GG constructor
p!lico *scensor $% O
GG operaciones
pu!lic voidpaseo $% O
pu!lic void reuestlevator $ % O
pu!lic void enterlevator $% O
pu!lic void e5itlevator $% O
pu!lic void departlevator $% O
top related