ApéndiceJ2SE
-
Upload
ubaldo-puno-quispe -
Category
Documents
-
view
219 -
download
0
Transcript of ApéndiceJ2SE
-
8/18/2019 ApéndiceJ2SE
1/114
Java 1.4
Dr. Diego Lz. de Ipiña Gz. de Artaza
http://paginaspersonales.deusto.es/[email protected]
http://paginaspersonales.deusto.es/dipinahttp://paginaspersonales.deusto.es/dipinamailto:[email protected]:[email protected]://paginaspersonales.deusto.es/dipinahttp://paginaspersonales.deusto.es/dipina
-
8/18/2019 ApéndiceJ2SE
2/114
Introduccin a la
plata!or"a Java #I$ %volucin de la progra"acin
&'u( es progra"ar) *ases de un pro+ecto in!or",tico
An,lisis. Diseño.
-odicacin co"pilacin. Depuracin prue0as. Docu"entacin.
-
8/18/2019 ApéndiceJ2SE
3/114
Introduccin a la
plata!or"a Java #II$ %volucin de los lenguaes. Lenguaes ",2uina. Lenguaes ensa"0lador. Lenguaes de alto nivel.
3rogra"acin estructurada. Instrucciones secuenciales. Instrucciones condicionales. Instrucciones repetitivas.
n progra"a en eecucin: proceso.
La relacin con la ",2uina. Los or5genes del lenguae Java.
1661 7un 8icros+ste"s intenta crear un lenguaepara progra"ar dispositivos el(ctricos.
-
8/18/2019 ApéndiceJ2SE
4/114
Introduccin a la
plata!or"a Java #III$ 3ri"era versin se lla" 9A. ;o tuvo (
-
8/18/2019 ApéndiceJ2SE
5/114
Introduccin a la
plata!or"a Java #I$ Desventaas
8enor rendi"iento. 3(rdida de caracter5sticas espec5cas.
9rientacin a 90etos. Applets. 3rogra"acin distri0uida B8I #Be"ote
8ethod Invocation$
8ultiproceso / 8ultihilo #8ultiChreading$ 3rogra"acin "vil J8% #8icro %dition$ 3rogra"acin aplicaciones Ee0 J73 #Java
7erver 3ages$
-
8/18/2019 ApéndiceJ2SE
6/114
Introduccin a la
plata!or"a Java #$ La evolucin del lenguae Java.
La orientacin actual es la de o!recer
"ultitud de utilidades para !acilitar eldesarrollo de aplicaciones. 7ervidores de aplicaciones.
Cransparencia en el acceso a datos. Desarrollo 0asado en co"ponentes#0eans$.
-
8/18/2019 ApéndiceJ2SE
7/114
3rogra"acin 9rientada a
90etos en Java #I$ &'u( es la 3rogra"acin 9rientada a
90etos)
3aradig"a de progra"acin 2ue per"ite"odelar de !or"a sencilla conceptos del"undo real a nivel de progra"acin.
&3or 2u( es Ftil la 399) 9!rece un conunto de herra"ientas 2ueuna vez interiorizadas per"iten gran
e
-
8/18/2019 ApéndiceJ2SE
8/114
3rogra"acin 9rientada a
90etos en Java #II$ 3ala0ras reservadas en Java.
abstract default goto operator synchronized
boolean do if outer this
break double implements package threadsafe
byte else import private throw
byvalue extends inner protected throws
case false instanceof public transient
cast final int rest true
catch finally interface return try
char float long short var
class for native static void
const future new super volatille
continue generic null switch while
-
8/18/2019 ApéndiceJ2SE
9/114
3rogra"acin 9rientada a
90etos en Java #III$ Herra"ientas de la 399.
La clase co"o ele"ento "5ni"o.
na clase es una representacin de un concepto del"undo real. -ontiene dos co"ponentes / "ie"0ros:
Datos Atri0utos. Acciones 8(todos.
7e usa el operador punto .K para acceder a los "ie"0ros. na clase se dene con la pala0ra reservada classM.
-lase s 90eto -lase -oncepto Denicin N BecetaO.
90eto Instancia %le"ento realM N 3astelO.
-
8/18/2019 ApéndiceJ2SE
10/114
3rogra"acin 9rientada a
90etos en Java #I$ 3a2uetes.
-oncepto 2ue per"ite englo0ar en una "is"aidea varias clases.
7e"eanza con estructura de directorios. 3uedeha0er una erar2u5a. %n co"pilacinP se generandirectorios !5sicos.
7e usa el operador punto .K para poder acceder
a las clases de un pa2uete o a los su0pa2uetes. isi0ilidad de pa2uete.
Pública: 7e per"ite usar esa clase desde otropa2uete.
No pública: 7lo se puede usar esa clase desde ese
pa2uete.
-
8/18/2019 ApéndiceJ2SE
11/114
3rogra"acin 9rientada a
90etos en Java #$ %structura 0,sica de un chero !uente Java. Denicin de pa2uete #opcional$: packageM I"portacin de clase #opcional$: importM
7e pueden i"portar todas las clases usando QM
Denicin de clases. 7lo una con visi0ilidad pF0lica de pa2uete. %l chero de0e lla"arseigual 2ue esta clase.
package paquete;
import otroPaquete.OtraClase;
public class ClaseConVisibilidadPublica
{}
class ClaseConVisibilidadNoPublica
{}
-
8/18/2019 ApéndiceJ2SE
12/114
3rogra"acin 9rientada a
90etos en Java #I$ Beglas de estilo 0,sicas.
Los no"0res de pa2uete en "inFsculas.paquete
Los no"0res de clase en "a+Fscula la pri"era letra + en"a+Fscula la pri"era letra de cada ca"0io de concepto.NombreDeClase
Los no"0res de "ie"0ros en "inFsculas + en"a+Fscula la pri"era letra de cada ca"0io de concepto.
nombreDeMiembroDeClase Los no"0res de constantes en "a+Fsculas todas las
letras + cada ca"0io de concepto con un guin 0ao RK.NOMBREDECON!"#N"E
-
8/18/2019 ApéndiceJ2SE
13/114
3rogra"acin 9rientada a
90etos en Java #II$ -o"entarios. Ha+ S tipos.
De Bloque: -o"ienzan por $%M + ter"inan por %$M.;o se per"iten anidaciones.
De Línea: Denidos por $$M. De Documentación: 3er"iten insertar te
-
8/18/2019 ApéndiceJ2SE
14/114
3rogra"acin 9rientada a
90etos en Java #III$ %ncapsulacin.
-ontrol de acceso a los "ie"0ros.
tipos de encapsulacin: Pública: n "ie"0ro accesi0le desde cual2uierpunto. 7e usa la pala0ra reservada publicM antesde denir el "ie"0ro.
Privada: n "ie"0ro accesi0le Fnica"ente desde
la propia clase. 7e usa la pala0ra reservada privateM antes de denir el "ie"0ro. Los datos pF0licos pueden ca"0iar en cual2uier
"o"ento. 8ediante encapsulacin privadaPslo pueden ca"0iar desde "(todos control.
-
8/18/2019 ApéndiceJ2SE
15/114
3rogra"acin 9rientada a
90etos en Java #IT$ Cipos de datos en Java.
3ri"itivos. %nteros.
byte: U 0its positivos + negativos #>1U V W V 1X$ char: 1= 0its positivos #W V =YYSY$ short: 1= 0its positivos + negativos #>SX=U V W V
SX=X$ int: S 0its positivos + negativos long: =4 0its positivos + negativos
Deci"ales. float: S 0its double: =4 0its
Lgicos. boolean: true o false
;o pri"itivos: -lases.
-
8/18/2019 ApéndiceJ2SE
16/114
3rogra"acin 9rientada a
90etos en Java #T$ aria0les.tipo * identi+icati,o * -V#/OR0N0C0#/1 * ; %l concepto de ,"0ito.
Dene la visi0ilidadP accesi0ilidadP duracin de unavaria0le. 7e representa "ediante Z + [K.
%
-
8/18/2019 ApéndiceJ2SE
17/114
3rogra"acin 9rientada a
90etos en Java #TI$ 8ie"0ros est,ticos.
Denidos con la pala0ra reservada staticM n "ie"0ro est,tico #o de clase$ es Fnico para todos los o0etos
2ue se creen. 7e puede decir 2ue sie"pre est, creado. 7epuede acceder a (l sin necesidad de un o0eto. n "ie"0ro no est,tico #o de instancia$ pertenece a cada o0eto
individual. 7e puede decir 2ue se crea unto con el o0eto. Desde un "(todo est,tico no se puede acceder a "ie"0ros no
est,ticos.
-reacin de o0etos. -uando se declara una varia0le de tipo no pri"itivoP real"ente
representa una re!erencia a un posi0le o0eto. 3ara poder crearel o0eto al 2ue re!erenciar se usa el operador ne(M.
-
8/18/2019 ApéndiceJ2SE
18/114
3rogra"acin 9rientada a
90etos en Java #TII$ -ontantes.
%nteras.23456 #intP por de!ecto$
23456/ #long$7234 #octal$7)87# #he
-
8/18/2019 ApéndiceJ2SE
19/114
3rogra"acin 9rientada a
90etos en Java #TIII$ %
-
8/18/2019 ApéndiceJ2SE
20/114
3rogra"acin 9rientada a
90etos en Java #TI$ %dicinP -o"pilacin + %ecucin en Java.
7o!tEare: http://EEE.ava.sun.co" JD: Java Develop"ent it. -o"pilador J8. JB%: Java Bunti"e %nviro"ent. J8.
%dicin en cual2uier editor. %l directorio binM del JD contiene los co"andos. -o"pilacin. -o"ando ?a,acM.
@d: Indica el directorio donde generar los .class. @classpat': Indica las rutas a los .class a usar.?a,ac Ad R"# Aclasspat' R"# +ic'ero.?a,a
%l chero .?a,a puede ser %.?a,a.
http://www.java.sun.com/http://www.java.sun.com/http://www.java.sun.com/
-
8/18/2019 ApéndiceJ2SE
21/114
3rogra"acin 9rientada a
90etos en Java #T$ %ecucin. -o"ando ?a,aM.
@cp: Indica las rutas de los .class a usar.?a,a Acp R"# +ic'ero
;o se indica la e
-
8/18/2019 ApéndiceJ2SE
22/114
3rogra"acin 9rientada a
90etos en Java #TI$ public class PrimerProrama
{
public static void main=!trin-1 ars>
{
!stem.out.println=El primer prorama en a,a.;
}
}
%ditarP co"pilar + eecutar este progra"a. Bealizar varios ca"0ios en el progra"a.
8odicar la cadena a presentar. Añadir el pa2uete curso?a,a.primeroM. &'u( i"plicaciones
tiene) Docu"entar el cdigo !uente. Generar docu"entacin.
-
8/18/2019 ApéndiceJ2SE
23/114
3rogra"acin 9rientada a
90etos en Java #TII$ package curso?a,a.tipos; public class "iposPrimiti,os
{
public static void main=!trin-1 ars>
{
byte b 23F;char c G6; // Representa el carácter ‘A’
short s 43FGF;
// Conversiones implícitas
int i b;
long l s;
float + i;
double d +;
}
}
Bealizar varios ca"0ios en el progra"a. Asignar valores !uera de rango a cada tipo. Intentar realizar conversiones inadecuadas. &-"o se !orzar5an)
-
8/18/2019 ApéndiceJ2SE
24/114
3rogra"acin 9rientada a
90etos en Java #TIII$ %
-
8/18/2019 ApéndiceJ2SE
25/114
3rogra"acin 9rientada a
90etos en Java #TIT$ Arit"(ticas. 7u"a *K: inario. %nteros + deci"ales. 8,s *K: nario. %nteros + deci"ales.
Besta @K: inario. %nteros + deci"ales. 8enos @K: nario. %nteros + deci"ales. 8ultiplicacin %K: inario. %nteros +
deci"ales. Divisin $K: inario. %nteros + deci"ales. Besto HK: inario. %nteros.Operador Operación Nivel de Precedencia
*I @ =unitarios> *36 1
@G.F36
%I $I H 6 % 6 es 36 2
36 $ G es 5
36 H G es 2
*I @ 3 * 4 es 6 3
3 A 4 es @2
-
8/18/2019 ApéndiceJ2SE
26/114
3rogra"acin 9rientada a
90etos en Java #TT$ Incre"ento **K + Decre"ento @@K
Pre: 7e incre"enta/decre"enta +
despu(s se evalFa la e
-
8/18/2019 ApéndiceJ2SE
27/114
3rogra"acin 9rientada a
90etos en Java #TTI$ package curso?a,a.incdec;
public class 0ncrementoDecremento
{
public static void main=!trin-1 ars>
{
int ,ariable 6; !stem.out.println=,ariable>;!stem.out.println=**,ariable>;!stem.out.println=,ariable**>;!stem.out.println=,ariable@@>;!stem.out.println=@@,ariable>;!stem.out.println=,ariable>;}
} Indicar la salida por pantalla de cada instruccin.
-
8/18/2019 ApéndiceJ2SE
28/114
3rogra"acin 9rientada a
90etos en Java #TTII$ 9peradores arit"(ticos en conuncin con
el operador de asignacin
,ariable * e)presion; $$ ,ariable ,ariable * e)presion
,ariable @ e)presion; $$ ,ariable ,ariable A e)presion
,ariable $ e)presion; $$ ,ariable ,ariable $ e)presion
,ariable % e)presion; $$ ,ariable ,ariable % e)presion
,ariable H e)presion; $$ ,ariable ,ariable H e)presion
-
8/18/2019 ApéndiceJ2SE
29/114
3rogra"acin 9rientada a
90etos en Java #TTIII$ 9peradores relacionales. 9peradores
2ue consiguen uno de los dos valores
lgicos: true o false.Operador Significado Ejemplo
Igual a a b
J No igual a a J b
K Mayor ue a K b
L Menor ue a L b
K Mayor o igual ue a K b
L Menor o igual ue a L b
-
8/18/2019 ApéndiceJ2SE
30/114
3rogra"acin 9rientada a
90etos en Java #TTI$ 9peradores lgicos:Operador Significado Tabla de verdad Ejemplo
J No l!gica" negaci!n a Ja J=) L >
true +alse
+alse true
# l!gica a b a b ) L n K true true true
true +alse true
+alse true true
+alse +alse +alse
$ l!gica a b a b ) L n K
true true true
true +alse +alse
+alse true +alse
+alse +alse +alse
# exclusiva a b a b ) L n K
true true +alse
true +alse true
+alse true true
+alse +alse +alse
-
8/18/2019 ApéndiceJ2SE
31/114
3rogra"acin 9rientada a
90etos en Java #TT$ 9peran so0re operandos 0ooleanos +
generan resultados 0ooleanos.
7e evalFan de iz2uierda a derecha. %l ",
-
8/18/2019 ApéndiceJ2SE
32/114
3rogra"acin 9rientada a
90etos en Java #TTI$ Instrucciones condicionales.
7i"ple:if =COND0C0ON>
{0N!"RCC0ONE!
} Do0le:
if =COND0C0ON>
{0N!"RCC0ONE!
}
else
{
0N!"RCC0ONE!
}
-
8/18/2019 ApéndiceJ2SE
33/114
3rogra"acin 9rientada a
90etos en Java #TTII$ 8Fltiple:
switch=V#R0#B/E>
{
case V#/OR2Q break;
case V#/OR3Q
break;
...
case V#/ORnQ
break;
defaultQ
break;
}
-
8/18/2019 ApéndiceJ2SE
34/114
3rogra"acin 9rientada a
90etos en Java #TIII$ Instrucciones repetitivas:
Ha+ de dos tipos: De 0 a N: for + while
for =0N0C0#/0#C0ON; COND0C0ON; P#!O>
{0N!"RCC0ONE!
}
while=COND0C0ON>
{
0N!"RCC0ONE!
} De 1 a N: do ... while
do
{
0N!"RCC0ONE!
}
while=COND0C0ON>;
-
8/18/2019 ApéndiceJ2SE
35/114
3rogra"acin 9rientada a
90etos en Java #TTIT$ 8(todos.
La signatura de un "(todo es lo 2ue lo dene.tiporetorno * identi+icati,o * = * -parSmetro=s>1 * >
Los par,"etros son deniciones de varia0les con ,"0itolocal #de "(todo$ pero 2ue reci0en un valor inicial cuandose haga la lla"ada el "(todo.tipo * identi+icati,o
Java soporta so0recarga: denicin de dos "(todos en la"is"a clase con el "is"o identicativo pero con nF"ero otipo de par,"etros di!erentes.
7i no se 2uiere devolver nada se usa el tipo ,oidM. Cipos pri"itivos s tipos no pri"itivos #clases$ en "(todos.
-
8/18/2019 ApéndiceJ2SE
36/114
3rogra"acin 9rientada a
90etos en Java #TTT$ -onstructores 8(todos especiales 2ue se eecutan en el "o"ento
de creacin de un o0eto #new$. ;o devuelven valor #ni void $. 7e lla"an igual 2ue la clase. 3uede ha0er so0recarga. 3or de!ecto sie"pre ha+ un constructor 2ue no reci0e
par,"etros. 3reguntas:
&'u( pasa si pone"os un Fnico constructor con par,"etros) &'u( pasa si pone"os un constructor con encapsulacin
privada)
-
8/18/2019 ApéndiceJ2SE
37/114
3rogra"acin 9rientada a
90etos en Java #TTTI$ %l tipo de datos !trin %s un tipo de datos a0stracto #clase$ 2ue est, denido en el
pa2uete ?a,a.lan. %s el Fnico tipo a0stracto de Java 2ue tiene su propia constante
literal conocida dentro de la sinta
-
8/18/2019 ApéndiceJ2SE
38/114
3rogra"acin 9rientada a
90etos en Java #TTTII$ Ejemplo: Desarrollar un progra"a para aclarar el concepto devaria0le est,tica #de clase$ + no est,tica #de instancia$.pacTae curso?a,a.estatic;
public class DeClaseDe0nstancia
{
public static ,oid main=!trin-1 ars>{
#uda a2 ne( #uda=>;
#uda a3 ne( #uda=>;
#uda a4 ne( #uda=>;
!stem.out.println=a2.deClase>;
!stem.out.println=a2.de0nstancia>;
}
}
class #uda
{
public static int deClase;public int de0nstancia;
public #uda=>
{
deClase**;
de0nstancia**;
}
}
-
8/18/2019 ApéndiceJ2SE
39/114
3rogra"acin 9rientada a
90etos en Java #TTTIII$ Ejemplo: Desarrollar un progra"a para aclarar el paso de par,"etros por valor + porre!erencia.
pacTae curso?a,a.,alre+;public class ValorURe+erencia
{
public static ,oid metodo=int ,alor>
{,alor**;
}public static ,oid metodo=#uda ,alor>
{,alor.,alor**;
}
public static ,oid main=!trin-1 ars>
{int ,alor 6;
metodo=,alor>;
!stem.out.println=,alor>;
#uda ob?eto ne( #uda=>;
ob?eto.,alor 6;
metodo=ob?eto>;
!stem.out.println=ob?eto.,alor>;}
}
class #uda
{public int ,alor 7;
}
-
8/18/2019 ApéndiceJ2SE
40/114
3rogra"acin 9rientada a
90etos en Java #TTTI$ Arra+s en Java
n arra+ es un conunto de datos del "is"o tipo situadosde !or"a consecutiva.
Las varia0les arra+ en Java son re!erencias. 3or tantoP losarra+s son o0etos + ha+ 2ue crearlos.
tipo * -1 * id * * ne( * tipo * - * cantidad * 1 * ;
%l ne( ha creado el o0eto del arra+. casos: ipos primitivos: Los datos del arra+ se ha0r,n creado ta"0i(n
#+a 2ue los tipos pri"itivos se crean directa"ente$. ipos no primitivos !clases": Los datos son re!erencias a null +
por tanto de0en crearse a parte.
-
8/18/2019 ApéndiceJ2SE
41/114
3rogra"acin 9rientada a
90etos en Java #TTT$ %n la declaracin se pueden poner los corchetes
NOM: Después del tipo: Indica 2ue C9D97 los identicativos
2ue se denan ser,n arra+s.tipo * -1 * id ... Después del identi#cativo: Indica 2ue ese identicativo
ser, el Fnico 2ue es arra+.tipo * id * -1 * ...
%n Java no se per"ite indicar en la declaracin delarra+ el nF"ero de ele"entos del "is"o.tipo * -1 * id * * ne( * tipo * - * cantidad * 1 * ;
Los arra+s en Java tienen 5ndices entre 7 + cantidadA 2.
&'u( pasa si "e salgo de rango)
-
8/18/2019 ApéndiceJ2SE
42/114
3rogra"acin 9rientada a
90etos en Java #TTTI$ La inicializacin de los ele"entos de un arra+ puede ser:
Elemento a elemento:tipo-1 id ne( tipo-31;
id-71 ,alor;id-21 ,alor; $niciali%ación en declaración: 7e usan llaves.tipo-1 id {,alorI ,alor};
La copia entre arra+s no se puede realizar "ediante laasignacin #&por 2u()$.
%
-
8/18/2019 ApéndiceJ2SE
43/114
3rogra"acin 9rientada a
90etos en Java #TTTII$ Los arra+s "ultidi"ensionales se declaran
"ediante el uso de NO consecutivos. Beal"ente son re!erencias 2ue contienen
re!erencias #arra+s dentro de arra+s$.tipo-1-1 id ne( tipo-cantidad21-cantidad31;
tipo-1-1 id {{,alorI ,alor}I {,alorI ,alor}}; 3ara acceder a conocer el nF"ero de ele"entos
de cada di"ensin se usa el "is"o atri0utolength pero desde re!erencias distintas.id.lent' $$ 0ndica la cantidad2
id-indice1.lent' $$ 0ndica la cantidad3
-
8/18/2019 ApéndiceJ2SE
44/114
3rogra"acin 9rientada a
90etos en Java #TTTIII$ %ntrada/7alida est,ndar.
?a,a.lan.!stem.out es de tipo ?a,a.io.Print!tream 2ue tiene los "(todos necesarios para "ostrar
in!or"acin por la salida est,ndar.?a,a.io.Print!tream.print=>
?a,a.io.Print!tream.println=>
?a,a.lan.!stem.in es de tipo ?a,a.io.0nput!tream 2ue tiene "(todos "u+ 0,sicos de lectura de in!or"acin
desde la entrada est,ndar. 3ara leer in!or"acin ",sela0orada #cadenas de caracteres$ se suelen usar o0etosdel tipo ?a,a.io.Bu++eredReader.
ne( Bu++eredReader=ne( 0nput!treamReader=!stem.in>>
-
8/18/2019 ApéndiceJ2SE
45/114
3rogra"acin 9rientada a
90etos en Java #TTTIT$ %
-
8/18/2019 ApéndiceJ2SE
46/114
3rogra"acin 9rientada a
90etos en Java #TTTT$ Gestin de e
-
8/18/2019 ApéndiceJ2SE
47/114
3rogra"acin 9rientada a
90etos en Java #$ %
-
8/18/2019 ApéndiceJ2SE
48/114
3rogra"acin 9rientada a
90etos en Java #$ 8apeo de tipos pri"itivos en tipos a0stractos.
Java o!rece dentro del pa2uete ?a,a.lan un"apeo de lo tipos pri"itivos de datos en tipos
a0stractos #clases$. byte L@K Bte char L@K C'aracter short L@K !'ort int L@K 0nteer float L@K 8loat double L@K Double
%sta caracter5stica tiene "ultitud de utilidades.na de las ",s peculiares es la posi0ilidad deconstruir valores pri"itivos desde valores de tipo
cadena.
-
8/18/2019 ApéndiceJ2SE
49/114
3rogra"acin 9rientada a
90etos en Java #$ Ejercicio Propuesto: Desarrollar un
progra"a
#curso?a,a.param.Parametros$ 2uepresente por pantalla todos lospar,"etros 2ue se le ha+an pasado porl5nea de co"andos.
-
8/18/2019 ApéndiceJ2SE
50/114
3rogra"acin 9rientada a
90etos en Java #$ Ejercicio Propuesto: -rear una clase
lla"ada EntradaDatos dentro del pa2uetecurso?a,a.util 2ue per"ita leer deteclado valores de tipos de datos pri"itivos: int: leer%ntero double: leerBeal char: leer-aracter !trin: leer-adena
Bealizar el control correspondiente"ediante iteraciones sucesivas.
-
8/18/2019 ApéndiceJ2SE
51/114
3rogra"acin 9rientada a
90etos en Java #$ Ejercicio Propuesto: Desarrollar un
progra"a
#curso?a,a.euros.DesloseCantidad$2ue pida al usuario 2ue introduzca unvalor entero en euros por teclado +desglose dicha cantidad en:
illetes: YWW\P WW\P 1WW\P YW\P W\P 1W\ 8onedas: \P 1\
isualizar cada cantidad por pantalla.
-
8/18/2019 ApéndiceJ2SE
52/114
3rogra"acin 9rientada a
90etos en Java #$ Ejercicio Propuesto: Desarrollar un progra"a
#curso?a,a.aritmetica.Menu#ritmetico$ 2uevisualice repetida"ente un "enF por pantalla dondese puedan seleccionar distintas operaciones a realizar: 1.> 7u"a .> Besta S.> 8ultiplicacin 4.> Divisin Y.> Besto
=.> &%s pri"o) X.> 7alir.
Bealizar "odular"ente la progra"acin necesaria pararesolver los c,lculos.
-
8/18/2019 ApéndiceJ2SE
53/114
3rogra"acin 9rientada a
90etos en Java #$ Ejercicio Propuesto: Desarrollar un progra"a
#curso?a,a.rect.RectanuloRelleno$ 2uepida al usuario 2ue introduzca la 0ase + la
altura #enteras de no ",s de 1Y$ de unrect,ngulo para di0uarlo usando asteriscos:%%%%%%
%%%%%%
%%%%%%
8odicarlo para 2ue el usuario introduzca el car,ctera usar en el di0uado. 8odicarlo para 2ue di0ue un rect,ngulo sin
rellenar. #curso?a,a.rect.Rectanuloueco$
-
8/18/2019 ApéndiceJ2SE
54/114
3rogra"acin 9rientada a
90etos en Java #$ Ejercicio Propuesto: Desarrollar un
progra"a#curso?a,a.adi,ina.#di,inaNumero$2ue calcule un nF"ero aleatorio entre 1 +1WW + pida sucesiva"ente al usuario 2ueintente adivinarlo indic,ndole si elnF"ero aleatorio es "a+or o "enor al
nF"ero 2ue ha+a introducido. 8odicarlo para 2ue el usuario pueda decidir
si 2uiere o no ugar una vez acertado elnF"ero.
-
8/18/2019 ApéndiceJ2SE
55/114
3rogra"acin 9rientada a
90etos en Java #$ %l o0eto t'is.
La re!erencia para poder usar %L o0eto
desde el cdigo de una clase. 7ie"pre accesi0le en entornos no est,ticos. ;o es o0ligatorio ",s 2ue en algunas
ocasiones:
3ara poder lla"ar a un constructor desde otroconstructor. De0e ser la pri"era instruccin delconstructor.
%n casos de a"0ig]edad entre datos "ie"0ro +varia0les locales de un "(todo.
-
8/18/2019 ApéndiceJ2SE
56/114
3rogra"acin 9rientada a
90etos en Java #$ Belaciones entre o0etos. Las clases no son conceptos independientes. La 399 per"ite "odelar en do"inio del pro0le"a a nivel de
progra"acin de !or"a casi directa. Ha+ dos tipos de relaciones.
$nclusión: Dene la relacin ... tiene un ...M. 7e "aterializa"ediante un atri0uto de una clase en otra. n atri0uto de laclase es un o0eto de otra clase
)erencia: Dene la relacin ... es un ...M. 7e "aterializa"ediante la generalizacin de una clase so0re otra.
-
8/18/2019 ApéndiceJ2SE
57/114
3rogra"acin 9rientada a
90etos en Java #$ Herencia.
Herra"ienta 2ue per"ite generalizarconceptos.
7e crea una erar2u5a. Los conceptos padreMdenen caracter5sticas co"unes 2ue losconceptos hioM heredan co"o propias.
Java no per"ite la herencia "Fltiple. 7e usa la pala0ra reservada e)tendsM para
relacionar las dos clases.class ClaseDeri,ada extends ClaseBase
-
8/18/2019 ApéndiceJ2SE
58/114
3rogra"acin 9rientada a
90etos en Java #$ -on esta nueva !or"a de relacionar
conceptos surge un nuevo tipo de
encapsulacin: protegida. 7e usa la pala0ra reservada protectedM. Dene "ie"0ros 2ue son accesi0les desde la
propia clase + desde las clases derivadas.
Ade",sP es e2uivalente a la encapsulacinpF0lica para clases del "is"o pa2uete.
-
8/18/2019 ApéndiceJ2SE
59/114
3rogra"acin 9rientada a
90etos en Java #$ %ncapsulacin.
Encapsulación
Desde laclase
Desde clasederivada
Desde clasedel paquete
Desde clasede otro
paquete
pri,ate T
en blanco T T
protected T T T
public T T T T
-
8/18/2019 ApéndiceJ2SE
60/114
3rogra"acin 9rientada a
90etos en Java #$ Gracias a la herencia se per"ite poder re!erenciar
a un o0eto de tipo derivado co"o tipo 0ase."ipoBase ob?Base ne( "ipoDeri,ado=>;
%sta utilidad per"ite poder tratar de la "is"a!or"a a todos los ele"entos derivados #est(n enel punto en el 2ue est(n dentro de la erar2u5a$."ipoBase-1 arra ne( "ipoBase-cantidad1;
arra-indice71 ne( "ipoDeri,ado2=>;
arra-indice21 ne( "ipoDeri,ado3=>;
-
8/18/2019 ApéndiceJ2SE
61/114
3rogra"acin 9rientada a
90etos en Java #$ Los o0etos derivados se constru+en en cascadaP e"pezandodesde la clase ",s 0aseM hacia a0ao. As5 puede o0servarsereal"ente 2ue cuando se crea un o0eto derivadoP real"ente secrean los o0etos 0ase ta"0i(n.
%ste co"porta"iento tiene sus i"plicaciones cuando se pierde elconstructor por de!ecto: Ha+ 2ue lla"ar e
-
8/18/2019 ApéndiceJ2SE
62/114
3rogra"acin 9rientada a
90etos en Java #$ 3oli"ors"o.
na caracter5stica de la 399 aplica0le a los
"(todos. 3er"ite eecutar un cdigo de "(tododistinto segFn el o0eto 2ue se ha+ainstanciado + al 2ue se re!erencie.
;ecesidades para 2ue se d( en Java: Belacin de herencia. %
-
8/18/2019 ApéndiceJ2SE
63/114
3rogra"acin 9rientada a
90etos en Java #$ -lases a0stractas.
7on clases declaradas con la pala0ra reservadaabstractM. public abstract class ClaseDeclarada#bstracta{ ...
;o se pueden instanciar #no se puede hacer new ClaseDeclarada#bstracta$.
7u Fnica nalidad es 2ue otras clases hereden deellas. 7irven para poder i"ple"entar conceptos 2ue no
de0an e
-
8/18/2019 ApéndiceJ2SE
64/114
3rogra"acin 9rientada a
90etos en Java #$ Los "(todos puede declararse con la pala0ra
reservada abstractM public abstract void metodo=>;
%stos "(todos no pueden tener cuerpo #se poneun ;K al nal directa"ente$.
na clase con al "enos un "(todo a0stractoPde0e declararse a0stracta.
La caracter5stica de la a0straccin se propagapor la erar2u5a. Los "(todos a0stractosde0er,n ser i"ple"entados gracias alpoli"ors"o en clases derivadas.
-
8/18/2019 ApéndiceJ2SE
65/114
3rogra"acin 9rientada a
90etos en Java #$ Inter!aces. %l ",
}
3uede tener datos. Los "(todos se declaran de !or"a nor"al #sin abstractM$ + denen la
signatura a i"ple"entar en las clases 2ue i"ple"enten la inter!az. Las clases pueden i"ple"entar todas las inter!aces 2ue 2uieran. 7e usa la
pala0ra reservada i"ple"entsM.public class ClaseCon0nter+aW implements Nombre0nter+aW
-
8/18/2019 ApéndiceJ2SE
66/114
3rogra"acin 9rientada a
90etos en Java #$ La a0straccin per"ite denir inter!aces#signaturas de "(todos$ 2ue gracias alpoli"ors"oP i"ple"entar,n las clases
derivadas/i"ple"entadoras. Gracias a 2ue un o0eto creado co"o derivado
puede re!erenciarse desde un tipo de datos 0ase#clase a0stracta o inter!az$P se puede eecutarcdigo distinto segFn el o0eto derivado sin tener2ue conocerlo.Clase#bstracta-1 ob?#bs ne( Clase#bstracta-cantidad1;
ob?#bs-indice71 ne( Clase0mplementadora2=>;
ob?#bs-indice21 ne( Clase0mplementadora3=>;
-
8/18/2019 ApéndiceJ2SE
67/114
3rogra"acin 9rientada a
90etos en Java #$ 8(todos + clases +inalM. 7i se indica en un "(todoP no se podr, poli"or!earM
ese "(todo en clases derivadas.class MiClase
{public +inal ,oid metodoNoPolimor+eable=>
{ ... 7i se indica en una claseP no se podr, heredar de dicha
clase.
+inal class ClaseNoeredable{ ...
3or ee"ploP los tipos de datos 0,sicos "apeados enclases son de tipo +inal.
-
8/18/2019 ApéndiceJ2SE
68/114
3rogra"acin 9rientada a
90etos en Java #$ 8ediante el operador instanceo+M
se pueden conocer los tipos
a0stractos de un o0eto 2ue se crecon el operador ne(M.boolean b =ob?eto instanceo+ "ipoClase>;
-
8/18/2019 ApéndiceJ2SE
69/114
3rogra"acin 9rientada a
90etos en Java #$ %e"plos de uso de herencia/poli"ors"o:
%"presa ^ %"pleados. Lectura / %scritura de datos. #T8LP PrintZriter
#!stem.out o en 7ervlets$P etc.$ %ditor gr,co. 3ro!esor ^ -one
-
8/18/2019 ApéndiceJ2SE
70/114
3rogra"acin 9rientada a
90etos en Java #$ -onsecuencias del poli"ors"o:
*mpliable: 3er"ite poder añadir nuevos tiposde datos co"pleta"ente nuevos. 3lug>ins.
'eusable: 3er"ite denir ele"entos 2ue usanuna inter!az + 2ue pueden co"pilarse una solavez + durar,n para sie"preM.
+le&ible: 7e puede ca"0iar el co"porta"iento
de !or"a "u+ sencilla #un si"ple neE$. $ndependencia: Los "dulos se independizan.
7e podr5an incluso desarrollar en paralelo.
-
8/18/2019 ApéndiceJ2SE
71/114
3rogra"acin 9rientada a
90etos en Java #$ %
-
8/18/2019 ApéndiceJ2SE
72/114
3rogra"acin 9rientada a
90etos en Java #$ lo2ue +inall %sta pala0ra reservada per"ite indicar un 0lo2ue de cdigo 2ue se
eecutar, sie"pre tanto si se lanza una e
-
8/18/2019 ApéndiceJ2SE
73/114
Jar 3er"ite conseguir en un chero englo0ar distintos
cheros o0eto. 7e encuentra en el directorio bin del JD. Ciene diversas opciones
c: crear un chero .ar. ,: -rear una salida con in!or"acin ",s detallada del proceso. +: Indicar el no"0re del chero. ): e
-
8/18/2019 ApéndiceJ2SE
74/114
3atrones de diseño Diseños esta0lecidos para poder dar
soluciones a pro0le"as co"unes.
san las herra"ientas de laorientacin a o0etos co"o 0ase peropueden ser i"ple"entados encual2uier lenguae orientado ao0etos #avaP -P 7"alltal_P -`P ...$
-
8/18/2019 ApéndiceJ2SE
75/114
3atrones de diseño 7ingleton
3lantea"iento: &-"o puedo conseguir controlar elnF"ero de instancias 2ue se van a crear de una clase)
7olucin: -ontrol %ncapsulacin. -reacin -onstructores. -o"0inacin -onstructores privados.
&-"o conseguir 2ue se pueda construir desde dentrosi no puedo construir) Acceso "ediante un "(todoest,tico. -ontrol "ediante varia0les est,ticas #Fnicas$.
-
8/18/2019 ApéndiceJ2SE
76/114
3atrones de diseño public class !inleton
{
private static !inleton instance null;
private !inleton=>
{}
public static !inleton et0nstance=>
{
if =instance null>
instance new !inleton=>;return instance;
}
}
-
8/18/2019 ApéndiceJ2SE
77/114
3atrones de diseño 90server
3lantea"iento: &-"o puedo avisar de ciertoco"porta"iento de una clase a todos a2uellos2ue 2uieran conocerlo independiente"ente de2ui(n 2uiera conocerlo)
7olucin: Independencia a0straccin inter!az. Ha+ dos ele"entos:
Generador 90serva0le. %scuchador 90server.
-
8/18/2019 ApéndiceJ2SE
78/114
3atrones de diseño
-
8/18/2019 ApéndiceJ2SE
79/114
3atrones de diseño %l patrn 90server en la A3I de Java.
-
8/18/2019 ApéndiceJ2SE
80/114
Acceso a ases de Datos
en Java #I$ so de la A3I JD- #Java Data ase
-ontrol$ 7e trata de una A3I 2ue dene
inter!aces de acceso a datosco"pleta"ente independientes de lai"ple"entacin real de dichos datos.
La A3I englo0a a distintos conceptosdenidos en el pa2uete ?a,a.sql.
-
8/18/2019 ApéndiceJ2SE
81/114
Acceso a ases de Datos
en Java #II$ %l acceso a la i"ple"entacin de datos lo realiza un
driver concreto. %sta carga se realiza usando la A3I de reection de Java.Class.+orName=NOMBRECONP#[E"E!DE/#C/#!EDR0VER; Los drivers no son ",s 2ue clases Java.
%l acceso real se realiza a trav(s de cone
-
8/18/2019 ApéndiceJ2SE
82/114
Acceso a ases de Datos
en Java #III$ -onsultas con JD-
De la cone
Prepared!tatementprepare!tatement=!trin>
de Connection.
-
8/18/2019 ApéndiceJ2SE
83/114
Acceso a ases de Datos
en Java #I$ La inter!az !tatement per"ite controlar las sentencias.%n su uso ",s sencillo per"ite: Actualizacin:
DE/E"EI PD#"EI 0N!ER"int e)ecutepdate=!trin> $$ De,uel,e el n` de elementos actualiWados
-onsulta: !E/EC"
Result!et e)ecute[uer=!trin> $$ De,uel,e una ,ista
La inter!az 3repared7tate"ent e$ en orden 1 a;.
-
8/18/2019 ApéndiceJ2SE
84/114
Acceso a ases de Datos
en Java #$ %l recorrido de un o0eto 2ue i"ple"ente lainter!az Besult7et:Result!et rs \\\\\;
('ile=rs.ne)t=>>{
}
Ahora se pueden ir e
-
8/18/2019 ApéndiceJ2SE
85/114
Acceso a ases de Datos
en Java #I$ Acceso a 8etaDatos
3er"ite conocer la estructura de la 0ase de datos
#no su contenido$. 7e usan las inter!aces:
DataBase,etaData: Aporta toda la in!or"acinacerca del acceso a datos #no"0res de ta0lasP colu"nasde una ta0laP pri"ar+ _e+sP !oreign _e+sP ...$. 7e e 'esult-et,etaData: Aporta in!or"acin so0re la
vista. 7e e
-
8/18/2019 ApéndiceJ2SE
86/114
-
8/18/2019 ApéndiceJ2SE
87/114
7Eing #II$ Codo co"ponente visual hereda de?a,a.a(t.Component.
Dene lo 0,sico: Ca"año. 3osicin. Di0uado. isi0ilidad/Ha0ilitacin. %ventos:
Ceclado Batn Bedi"ensionado Jerar2u5a.
-
8/18/2019 ApéndiceJ2SE
88/114
7Eing #III$ Ade",s de ha0er una erar2u5a de clasesP AbCP +
por tanto 7EingP dene una erar2u5a deco"ponentes "ediante inclusin.
-
8/18/2019 ApéndiceJ2SE
89/114
7Eing #I$ La clase ContainerP ade",s de ser unComponentP per"ite al"acenar
Components. Container tiene un Component. De esta !or"a se puede hacer 2ue algunos
co"ponentes contengan a otrosP 2ue a su
vez pueden ser contenedores de otros etc... %sta relacin se crea usando el "(todo add.
-
8/18/2019 ApéndiceJ2SE
90/114
7Eing #$ Aun2ue se puede usar AbCP 7Eing es
todav5a ",s independiente de plata!or"a.
7Eing añade nuevas !uncionalidadesavanzadas. AbC + 7Eing poseen in"ensidad de
!unciona"iento internoP desde control de
hilos independientes hasta co"unicacinnativa con el 7iste"a 9perativo.
-
8/18/2019 ApéndiceJ2SE
91/114
7Eing #I$ entana:
%n AbC: ?a,a.a(t.8rame %n 7Eing: ?a,a).s(in.+rame Beal"ente la de 7Eing e
-
8/18/2019 ApéndiceJ2SE
92/114
7Eing #II$ 8(todos principales:
,oid setVisible=boolean>: 3er"ite visualizar ono un co"ponente.
,oid dispose=>: -ierra la ventana. ,oid set!iWe=intI int>: Asigna un ta"año a un
co"ponente. bidth ancho Height alto.
?a,a.a(t.Dimension et!iWe=>: 3er"iteconocer el ta"año de un co"ponente.
,oid setEnabled=boolean>: 3er"iteha0ilitar/Desha0ilitar un co"ponente.
-
8/18/2019 ApéndiceJ2SE
93/114
7Eing #III$ 3anel:
%n AbC: ?a,a.a(t.Panel.
%n 7Eing: ?a,a).s(in.Panel. %n este caso no ha+ relacin herencia. %s el contenedor ",s sencillo. 7u utilidad suele ser la de poder "anear
los co"ponentes 2ue englo0a desde unFnico punto.
A+uda a organizar los co"ponentes.
-
8/18/2019 ApéndiceJ2SE
94/114
7Eing #IT$ La0el:
%n AbC: ?a,a.a(t./abel. %n 7Eing: ?a,a).s(in./abel. %n este caso no ha+ relacin de herencia. 3er"ite visualizar un te: Asigna el te
-
8/18/2019 ApéndiceJ2SE
95/114
7Eing #T$ -uadros de te: Asigna el te
-
8/18/2019 ApéndiceJ2SE
96/114
7Eing #TI$ reas de te: Asigna el te
-
8/18/2019 ApéndiceJ2SE
97/114
7Eing #TII$ otones:
Los ha+ de "uchos tipos. %l tipo 0,sico:
%n AbC: ?a,a.a(t.Button. %n 7Eing: ?a,a).s(in.Button.
%n este caso no ha+ relacin de herencia. 8(todos principales:
,oid set/abel=!trin>: Asigan el te: Becoge el te
-
8/18/2019 ApéndiceJ2SE
98/114
7Eing #TIII$ otones con estado:
%n AbC: ?a,a.a(t.C'ecTBo). %n 7Eing: ?a,a).s(in.C'ecTBo). %n este caso no ha+ relacin de herencia. 8(todos principales:
,oid set/abel=!trin>: Asigan el te: Becoge el te: Becoge el estado #slo en AbC$.
-
8/18/2019 ApéndiceJ2SE
99/114
7Eing #TI$ -ontenedores de ite"s:
Listas: %n AbC: ?a,a.a(t./ist 8(todos:
,oid add=!trin>: Añade un ele"ento. ,oid remo,e=!trin>: %li"ina un ele"ento. ,oid remo,e=int>: %li"ina un ele"ento segFn su posicin. int et0temCount=>: Indica el n de ele"entos 2ue contiene. !trin et0tem=int>: Becoge un ele"ento segFn su posicin. !trin-1 et0tems=>: Becoge todos los ele"entos.
int et!elected0nde)=>: Becoge el 5ndice del ele"ento seleccionado. ,oid select=int>: Indica cFal de0e ser el ele"ento seleccionado. ,oid setMultipleMode=boolean>: 3er"ite aplicar la seleccin "Fltiple. boolean isMultipleMode=>: Indica si per"ite seleccin "Fltiple. !trin-1 et!elected0tems=>: Becoge los ele"entos seleccionados.
-
8/18/2019 ApéndiceJ2SE
100/114
7Eing #T$ %n 7Eing: ?a,a).s(in./ist 3ara "odicar su contenido se le asocia un concepto 2ue i"ple"ente la
inter!az ?a,a).s(in./istModel. %: Añade un ele"ento en una posicin. ,oid addElement=Ob?ect>: Añade un ele"ento al nal. Ob?ect et=int>: Becoge un ele"ento de una posicin. int et!iWe=>: Indica el n de ele"entos. ,oid remo,e=>: %li"ina ele"ento. Beci0e o un int o un Ob?ect.
8(todos de /ist: ,oid setModel=/istModel>: Asigna un "odelo. int et!elected0nde)=>: Indica el ele"ento seleccionado. int-1 et!elected0ndices=>: Indica los ele"entos seleccionados. int et!electionMode=>: n valor denido en /ist!electionModel.
-
8/18/2019 ApéndiceJ2SE
101/114
7Eing #TI$ -o"0o 0o: Becoge un ele"ento de una posicin. int et!iWe=>: Indica el n de ele"entos. ,oid remo,eElement=Ob?ect>: %li"ina un ele"ento.
8(todos de ComboBo): ,oid setModel=ComboBo)Model>: Asigna un "odelo. int et!elected0nde)=>: Indica el ele"ento seleccionado. int-1 et!elected0ndices=>: Indica los ele"entos seleccionados. int et!electionMode=>: n valor denido en /ist!electionModel.
-
8/18/2019 ApéndiceJ2SE
102/114
7Eing #TII$ La+outs: 7e denen ciertos conceptos para
poder organizar los co"ponentes dentro deun Container.
Los La+outs denen la inter!az/aoutManaer + se relacionan con el-ontainer "ediante el "(todo,oid set/aout=/aoutManaer>
%l uso del La+out se especica al añadir elco"ponente al Container "ediante lasso0recargas del "(todo add=>.
-
8/18/2019 ApéndiceJ2SE
103/114
7Eing #TIII$ ?a,a.a(t.Border/aout
3er"ite ordenar co"ponentes de un -ontainerusando los puntos cardinales:
;9BCHP 79CHP %A7CP b%7C + -%;C%B. %stas constantes est,n denidas en la propia clase
orderLa+out.contenedor.add=componenteI Border/aout.NOR">
?a,a.a(t.8lo(/aout 9rdena los co"ponentes de un Container deiz2uierda a derecha secuencial"ente segFn elorden de inclusin usando el "(todo add=>.
-
8/18/2019 ApéndiceJ2SE
104/114
7Eing #TIT$ ?a,a.a(t.^rid/aout
3er"ite ordenar los co"ponentes de un-ontainer en !or"a de "atriz 0idi"ensional.
La propia clase tiene "(todos para poderespecicar las di"ensiones de la "atriz.
Los co"ponentes se van asignando
a la "atriz de iz2uierda a derecha +de arri0a a0ao al utilizar el "(todoadd#$.
-
8/18/2019 ApéndiceJ2SE
105/114
7Eing #TT$ Gestin de %ventos:
7e utiliza el patrn o0server pero coni"ple"entaciones particulares segFn el
co"ponente + los eventos. 7e dene una inter!az \\\/istener 2ue se
asocia con el generador "ediante "(todos deladd\\\/istener o remo,e\\\/istener.
3ara cada \\\/istener con ",s de un"(todoP e
-
8/18/2019 ApéndiceJ2SE
106/114
7Eing #TTI$ %ventos co"unes #Inter!aces asociadas$:
?a,a.a(t.Component ?a,a.a(t.e,ent.Component/istener: %ventos relacionados con lo general
en un co"ponente.
?a,a.a(t.e,ent.e/istener: %ventos de teclado. 7lo son activos
cuando el co"ponente tiene el !oco. ?a,a.a(t.e,ent.Mouse/istener: %ventos de ratn. 7lo re!erentes al
co"ponente. ?a,a.a(t.e,ent.MouseMotion/istener: %vntos de ratn en "ovi"iento +
drag>and>drop. ?a,a.a(t.Container
?a,a.a(t.e,ent.Container/istener: %ventos relacionados con la erar2u5a de co"ponentes. ?a,a.a(t.Zindo(
?a,a.a(t.e,ent.Zindo(/istener: %ventos relacionados con una ventana.
-
8/18/2019 ApéndiceJ2SE
107/114
7Eing #TTII$
?a,a.a(t.ButtonI ?a,a.a(t./istI ?a,a.a(t."e)t8ieldI?a,a).s(in.#bstractButtonI ?a,a).s(in.ComboBo)I ?a,a.a(t.e,ent.#ction/istener: %vento 2ue se lanza cuando
se actFa so0re el co"ponente. ?a,a.a(t.C'ecTBo)I ?a,a.a(t./ist
?a,a.a(t.e,ent.0tem/istener: %vento 2ue se lanza cuando ha+un ca"0io de seleccin.
?a,a.a(t."e)tComponent ?a,a.a(t.e,ent."e)t/istener: %vento relacionado con el
ca"0io del te
-
8/18/2019 ApéndiceJ2SE
108/114
Ant Herra"ienta para denir tareas a realizar. %l so!tEare se puede conseguir en
EEE.ant.apache.org 7i"ple"ente 0asta con desco"pri"ir. Ha+ 2ue añadir algunas varia0les del siste"a:
#N"OME: %l directorio 0ase donde est, instalado
Ant. ;o es "ala idea añadir el directorio 0in de la
instalacin de Ant a la varia0le P#".
http://www.antapache.org/http://www.antapache.org/
-
8/18/2019 ApéndiceJ2SE
109/114
Ant %le"entos de un chero uild*ile de
Ant:
3ro+ecto: n conunto de o0etivos.pro?ect Atri0utos:
name: %l no"0re del pro+ecto. ;o es o0ligatorio.
de+ault: %l o0etivo por de!ecto 2ue se eecutar,. %so0ligatorio. basedir: La ruta so0re la 2ue tra0aar. ;o es
o0ligatorio.
-
8/18/2019 ApéndiceJ2SE
110/114
Ant 90etivo: %s un conunto de tareas. taret
Atri0utos: name: %l no"0re del o0etivo. %s o0ligatorio. depends: 3er"ite indicar 2ue un o0etivo depende de la
eecucin de otro#s$. Los distintos o0etivos se indicanseparados por co"as. ;o es o0ligatorio. i+: 3er"ite condicionar la eecucin de un o0etivo a la
e
-
8/18/2019 ApéndiceJ2SE
111/114
Ant Careas: tasT
Lname attrib3,alue2< attrib3,alue3< ...$K
%n los valores se puede hacer re!erencia a
propiedades denidas con anterioridad. %
-
8/18/2019 ApéndiceJ2SE
112/114
Ant 3ropiedades: 7e denen "ediante la tarea propert o
!uera de Ant. 7e les asigna un no"0re con el atri0uto name. 3ara poder tener acceso a ellas se pueden usar indicando el
no"0re entre { + }K. Ant per"ite acceso a las varia0les del siste"a. n listado de
las "is"as se puede o0tener en la docu"entacin de la A3Ide ava en el "(todo ?a,a.lan.!stem.etProperties.
Ade",s Ant posee otras propiedades.basedir
ant.+ile
ant.,ersionant.pro?ect.name
ant.?a,a.,ersion
-
8/18/2019 ApéndiceJ2SE
113/114
AntLpro?ect nameMPro?ect de+aultdist basedir.K
LdescriptionK
simple e)ample build +ile
L$descriptionK
Lpropert namesrc locationsrc$K
Lpropert namebuild locationbuild$K
Lpropert namedist locationdist$K
Ltaret nameinitKLtstamp$K
LmTdir dir{build}$K
L$taretK
Ltaret namecompile dependsinit descriptioncompile t'e sourceK
L?a,ac srcdir{src} destdir{build}$K
L$taretK
Ltaret namedist dependscompile descriptionenerate t'e distributionK
LmTdir dir{dist}$lib$K
L?ar ?ar+ile{dist}$lib$MPro?ect@{D!"#MP}.?ar basedir{build}$K
L$taretK
Ltaret nameclean descriptionclean up K
Ldelete dir{build}$K
Ldelete dir{dist}$K
L$taretK
L$pro?ectK
-
8/18/2019 ApéndiceJ2SE
114/114
Ant Las tareas LpropertKP Ltpede+K +LtasTde+K son especiales + se per"itedenirlas !uera de un o0etivo.
-uando se añade el atri0uto description a un o0etivoP es co"o si se declarasepF0lico.