You are on page 1of 51

M D ULO B

Ot r os con ce pt os

Te m a 2 .5

n dice de la u n ida d:

1. Paquet es

2. Modificadores de acceso

3. Mt odos est t icos

4. final

5. Paso por valor o por referencia

6. Cosas que ocurren por defect o

7. I nst anceof
Un ida d 2 .5 Ot r os con ce pt os

En las unidades ant eriores se ha vist o la sint axis de Java, y paradigm as bsicos de
la program acin orient ada a obj et os. Exist en ot ros concept os, a nivel organizat ivo
de las clases y de acceso de las clases y obj et os que son los que verem os en est a
Unidad.

1 . Pa qu e t e s

Los paquet es Java son una caract erst ica m s del lenguaj e que nos perm it e
organizar el cdigo en grupos.

Adicionalm ent e, ayudan a evit ar colisiones en los nom bres de las clases. De m anera
que en un program a que va a usar un fram ework ( conj unt o de clases con un prop-
sit o en concret o) de un t ercero, t enga un 99% de seguridad de que no t iene ningu-
na clase con el m ism o nom bre, que las del fram ework.

Para especificar el paquet e al que pert enece una clase se ut iliza la keyword: pa c-
k a ge . La sint axis de la declaracin de un paquet e es la siguient e:

pa ck a ge nom br e _ de l_ pa que t e ;

Ej e m plo: es.j ava.aula.m ent or.figuras;

El nom bre de una clase no se lim it a solam ent e al ident ificador ut ilizado en la defini-
cin, sino a la sum a del paquet e al que pert enece m s el del ident ificador: N om br e
de pa qu e t e + I de n t ifica dor de la Cla se

Ej e m plo: La clase Circulo del paquet e es.j ava.aula.m ent or.figuras es la clase
es.j ava.aula.m ent or.figuras.Circulo. La clase Circulo del paquet e es.figuras es la
clase es.figuras.Circulo

Por t ant o, al ir a ut ilizar una clase debem os conocer siem pre el paquet e al que per-
t enece para poder referenciarla porque si no el com pilador no va a saber encont rar-
la.

Toda clase Java pert enece a un paquet e. Si no se especifica nada, pert enece al pa-
quet e por defect o ( que es un paquet e raz sin nom bre o nada, pero no est reco-
m endado su uso) . En el caso de especificarlo, la sent encia package t iene que ser la
prim era lnea del fichero con el cdigo fuent e de la clase.

191
MDULO 2

Exist e una convencin acept ada por t odos los desarrolladores en cuant o a la no-
m enclat ura de los paquet es Java:

Todas las palabras que com ponen el nom bre del paquet e van
en m insculas.

Se suele ut ilizar el nom bre de dom inio de la em presa,


organizacin o inst it ucin invert ido para int ent ar asegurar nom bres
unvocos y evit ar colisiones.

Ej e m plos: com .ibm .t est

es.m iem presa.ut ilidades

es.pract icas.t em a1

Para poder ut ilizar una clase en nuest ro cdigo t enem os que escribir su nom bre
com plet o cada vez que la ut ilicem os: paquet e + clase. Para m ej orar la legibilidad
del cdigo, exist e ot ro m ecanism o para facilit ar la codificacin y facilit ar la vida al
desarrollador que es el uso de la keyword: im por t . La sint axis de la declaracin de
la sent encia es la siguient e:

im por t n om br e _ de l_ pa qu e t e .nom br e _ de _ la _ cla se ;


im por t n om br e _ de l_ pa qu e t e .* ;

Ej e m plos: es.j ava.aula.m ent or.figuras.Circulo;

es.j ava.aula.m ent or.figuras.* ;

Las sent encias im port se ubican ent re la sent encia package y la definicin de la cla-
se.

Las clases im port adas de est a m anera pueden ser referenciadas en el cdigo direc-
t am ent e por su nom bre de clase sin necesidad de escribir el paquet e al que pert e-
necen.

Un im port genrico ( es decir, con el * ) im port a solo las clases de ese paquet e, pero
no de los subpaquet es.

Ej e m plo: Si se ut iliza el im port es.j ava.aula.* im port ar las clases del pa-
quet e es.j ava.aula pero no las clases de paquet es que est n en nom enclat ura

192
Un ida d 2 .5 Ot r os con ce pt os

por debaj o de est e, com o es el caso de la clase


es.j ava.aula.m ent or.figuras.Circulo

Por t ant o para ut ilizar una clase t enem os t res alt ernat ivas:

Ut ilizar su nom bre com plet o: paquet e + clase ( unidos


m ediant e el punt o)

I m port ar la clase: im port paquet e + clase ( unidos m ediant e el


punt o)

I m port ar el paquet e com plet o: im port paquet e + * ( unidos


m ediant e el punt o)

Un im port no im plica la inclusin de cdigo com o ocurre en un # include de C+ + .


Sim plem ent e son vas de acceso para buscar el cdigo. El cdigo se va cargando
segn se necesit a.

Al igual que las clases Java t ienen un reflej o en el Sist em a de Archivos ( una clase
Java equivale a un fichero t ext o de ext ensin * .j ava) , lo m ism o ocurre con los pa-
quet es Java.

Los paquet es Java equivalen a direct orios. Es decir, cada m iem bro del paquet e ( se-
parado por punt os) se t raduce a un direct orio en el Sist em a de Archivos.

Ej e m plo:

package es.j ava.aula.m ent or.figuras;


public class Circulo { ...}

Para com pilar una clase que pert enece a un paquet e t enem os dist int as opciones:

Desde c: \ t rabaj o ej ecut am os: j avac


es\ j ava\ aula\ m ent or\ figuras\ Circulo.j ava

193
MDULO 2

Desde c: \ t rabaj o\ es\ j ava\ aula\ m ent or\ figuras ej ecut am os:
j avac Circulo.j ava

Para ej ecut ar una clase solo t enem os una opcin posible:

Desde cualquier punt o del sist em a ej ecut am os: j ava


es.j ava.aula.m ent or.figuras.Circulo.j ava. Not a: el direct orio
c: \ t rabaj o debe est ar en el CLASSPATH ( o si est am os en el direct orio
c: \ t rabaj o, con que est uviera el . en el CLASSPATH t am bin sera
suficient e)

A cont inuacin m ost ram os dist int os ej em plos de ut ilizacin de clases t eniendo en
cuent a los paquet es a los que pert enecen:

Ej e m plo: Am bas clases est n en el paquet e por defect o y por t ant o se en-
cuent ran.

Ej e m plo: Las clases est n en paquet es dist int os y no se ut ilizan las clases
con el nom bre com plet o ni con la sent encia im port

194
Un ida d 2 .5 Ot r os con ce pt os

Ej e m plo: Las clases est n en paquet es dist int os y se ut ilizan las clases con el
nom bre com plet o

195
MDULO 2

Ej e m plo: Las clases est n en paquet es dist int os y se ut ilizan las clases con la
sent encia im port

Ej e m plo: Las clases est n en paquet es dist int os y se ut ilizan las clases con la
sent encia im port genrica

196
Un ida d 2 .5 Ot r os con ce pt os

Ej e m plo: Las clases est n en el m ism o paquet e

1 . 1 Ca r a ct e r st ica s de los Pa qu e t e s Ja va

197
MDULO 2

Las clases bsicas Syst em , St ring, Mat h, et c pert enecen al paquet e


j ava.lang.* . ( las verem os con m s det alle en la Unidad 2.6) .

Cm o com pilaban t odas nuest ras prct icas si no conocam os los paquet es
Java ( y por t ant o la keyword im port ) ? La respuest as es porque el com pilador,
por defect o, siem pre aade la siguient e lnea a nuest ro cdigo:

im por t j a va .la ng.* ;

Aunque no es frecuent e, es posible que provoquem os am bigedades en el uso


de los im port s, y por t ant o errores de com pilacin.

Qu ocurre al usar una clase cuyo nom bre exist e a la vez en dos paquet es
que hem os im port ado? Cul de las dos clases es la que se debe ut ilizar?

En esos casos, hay que im port ar o referirse a la clase conflict iva m ediant e su
ident ificador com plet o: paquet e + clase.

Ej e m plo: Necesit am os ut ilizar dos clases con el m ism o nom bre que est n en
paquet es dist int os. Ut ilizam os solam ent e la sent encia im port genrico

198
Un ida d 2 .5 Ot r os con ce pt os

Ej e m plo: Necesit am os ut ilizar dos clases con el m ism o nom bre que est n en
paquet es dist int os. Ut ilizam os la sent encia im port genrico y en la clase conflic-
t iva ut ilizam os el nom bre com plet o.

Ej e m plo: Necesit am os ut ilizar dos clases con el m ism o nom bre que est n en
paquet es dist int os. Ut ilizam os la sent encia im port genrico e im port especfico.

199
MDULO 2

Ej e m plo: Necesit am os ut ilizar dos clases con el m ism o nom bre que est n en
paquet es dist int os. Ut ilizam os la sent encia im port especfico.

200
Un ida d 2 .5 Ot r os con ce pt os

Hem os vist o que exist e el llam ado paquet e por defect o al que pert enecen
t odas aquellas clases que no indican de form a explcit a un paquet e
det erm inado en su cdigo.

Desde la versin 1.4.x, el com pilador no perm it e im port ar desde una clase que
pert enece a un paquet e explcit o, una clase que pert enece al paquet e por
defect o.

Est o no t endra que ser un problem a en la m ayora de los casos porque


siem pre deberam os ubicar las clase en paquet es Java de form a explcit a.

Cuando consult am os el API , por ej em plo, via online en la docum ent acin de
SUN ht t p: / / j ava.sun.com / j avase/ 6/ docs/ api/ index.ht m l, podem os apreciar la
cat egorizacin de los paquet es y las clases que pert enecen a cada uno de
ellos.

2 . M odifica dor e s de a cce so

Hast a ahora hem os vist o que podem os ut ilizar cualquier clase, m t odo y at ribut o
desde cualquier punt o de nuest ro cdigo sin ningn t ipo de problem a. Pero el
lenguaj e de program acin Java, nos perm it e poder delim it ar quin o desde donde
se puede acceder a una clase, a un m t odo o a un at ribut o.

Exist en cuat ro t ipos de m odificadores de acceso y por t ant o, cuat ro keywords. Las
hem os ordenados de m enor a m ayor rest riccin.

201
MDULO 2

public - > Pblico

prot ect ed - > Prot egido.

- > Paquet e, ident ificado por la ausencia de keyword.

privat e - > Privado.

La siguient e t abla m uest ra a qu se puede acceder desde una clase dada:

Los m odificadores de acceso se ut ilizan en las definiciones de:

Clases e int erfaces: solo se puede ut ilizar public y package ( o


paquet e en cast ellano)

At ribut os: se perm it en cualquiera de los cuat ro.

Mt odos: se perm it en cualquiera de los cuat ro.

Ej e m plo: Ej em plo de m odificadores de acceso con at ribut os.

202
Un ida d 2 .5 Ot r os con ce pt os

Ej e m plo: Ej em plo de m odificadores de acceso con m t odos.

Ej e m plo: Ej em plo del m odificador de acceso paquet e ut ilizado con

203
MDULO 2

clases

3 . M t odos e st t icos

Exist en casos en los que nos encont ram os con clases cuyos m t odos no dependen
en absolut o de los at ribut o de la clase, y en t odo caso de los parm et ros de los
m t odos. Por ej em plo, la clase j ava.lang.Mat h:

Su m t odo round recibe un nm ero decim al y lo devuelve


redondeado.

Su m t odo sqrt recibe un nm ero y devuelve su raiz cuadrada.

Su m t odo m in recibe dos nm eros y devuelve el m enor.

Son m t odos que parece no pert enecer a una ent idad concret a. Son genricos,
globales, independient es de cualquier est ado del obj et o.

Tiene sent ido inst anciar un obj et o para ej ecut ar algo que no depende de nada de
dicho obj et o?

204
Un ida d 2 .5 Ot r os con ce pt os

La respuest a es no. Y para ello cont am os en Java con los m t odos est t icos. Est n
asociados a una clase solam ent e desde un punt o de vist a organizat ivo.

Para definir un m t odo est t ico ut ilizam os la keyword: st a t ic. La sint axis de la
declaracin es la siguient e:

m odifi_ a cce so st a t ic t ipo_ r e t or no nom br e ( [ t ipo pa r a m e t r o,..] )


{
}

Ej e m plo:

public st at ic void m iMet odo( )


{
}

Para ej ecut ar por t ant o un m t odo est t ico no hace falt a inst anciar un obj et o de la
clase. Se puede ej ecut ar el m t odo direct am ent e sobre la clase.

Ej e m plo: int a = Mat h.m in( 10,17) ;

Mient ras que los m t odos convencionales requieren de un obj et o:


St ring s = new St ring( Hola ) ;
int a = s.indexOf( a) ;

No se puede realizar la siguient e llam ada


int a = St ring.indexOf( a) ;

Una clase puede perfect am ent e m ezclar m t odos est t icos con m t odos
convencionales. Un ej em plo clsico es el m t odo m ain:

pu blic st a t ic void m a in ( St r in g[ ] a r gs) { }

Hay ciert as reglas que hay que t ener en cuent a en el uso de m t odos est t icos:

Un m t odo est t ico j am s puede acceder a un at ribut o de


inst ancia ( no est t ico) .

Un m t odo est t ico j am s puede acceder a un m t odo de


inst ancia ( no est t ico) .

Pero desde un m t odo convencional si que se puede acceder a


at ribut os y m t odos est t icos.

205
MDULO 2

Ej e m plo: Ut ilizacin de at ribut os desde un m t odo est t ico

Ej e m plo: Ut ilizacin de m t odos est t icos desde un m t odo est t ico

206
Un ida d 2 .5 Ot r os con ce pt os

3 .1 At r ibu t os e st t icos

Los at ribut os est t icos ( o variables est t icas) son at ribut os cuyo valor es com -
part ido por t odos los obj et os de una clase.

Para definir un at ribut o est t ico ut ilizam os la keyword: st a t ic. La sint axis de
la declaracin es la siguient e:

m odifi_ a cce so st a t ic t ipo n om br e [ = va lor _ in icia l] ;

Ej e m plo: public st at ic int cont ador = 0;

Hay que t rat arlos con cuidado puest o que son fuent e de problem as difciles de
det ect ar. Com o t odos los obj et os de una m ism a clase com part e el m ism o at ri-
but o est t ico, si un obj et o a m odifica el valor del at ribut o, cuando el obj et o
b vaya a usar dicho at ribut o, lo usa con un valor m odificado.

Recordem os que sin em bargo los at ribut os convencionales ( de inst ancia) son
propios de cada obj et o.

Los at ribut os est t icos son cargados en m em oria cuando se carga la clase.
Siem pre ant es de que:

Se pueda inst anciar un obj et o de dicha clase.

Se pueda ej ecut ar un m t odo est t ico de dicha clase.

Para usar un at ribut o est t ico no hace falt a inst anciar un obj et o de la clase.

Ej e m plo: Syst em .out .print ln( Hola ) ; / / out es un at ribut o est t ico
de la clase j ava.lang.Syst em .

Ej e m plo:

207
MDULO 2

3 .2 Bloqu e s de cdigo e st t icos

Los bloques de cdigo est t ico son t rozos de cdigo que se ej ecut an al cargar
una clase en m em oria ( no al inst anciar obj et os de esa clase) .

Para definir un bloque de cdigo est t ico ut ilizam os la keyword: st a t ic. La


sint axis de la declaracin es la siguient e:

st a t ic { . }

Ej e m plo: st at ic { Syst em .out .print ln( Hola ) ; }

Ej e m plo:

208
Un ida d 2 .5 Ot r os con ce pt os

4 . fin a l

fina l es una keyword que m odifica el funcionam ient o de:

Clases

At ribut os

Mt odos

4 .1 Cla se s fin a le s

Definiendo una clase com o final conseguim os que ninguna ot ra clase pueda
heredar de ella.

Para definir una clase final ut ilizam os la keyword: fina l. La sint axis de la de-
claracin es la siguient e:

209
MDULO 2

m odifica dor _ a cce so fina l cla ss n om br e _ cla se


{
}

Ej e m plo:

public final class MiClase


{
}

Ej e m plo: Herencia de una clase final

4 .2 M t odos fin a le s

Definiendo un m t odo com o final conseguim os que ninguna ot ra clase pueda


sobrescribirlo.

Para definir un m t odo com o final ut ilizam os la keyword: fina l. La sint axis de
la declaracin es la siguient e:

m odif_ a cce so fina l t ipo_ r e t or no n om br e ( [ t ipo pa r a m ,..] )


{
}

Ej e m plo:

public final int sum a( int param 1, int param 2)


{
ret urn param 1 + param 2;
}

Ej e m plo:

210
Un ida d 2 .5 Ot r os con ce pt os

4 .2 At r ibu t os fin a le s

Definiendo un at ribut o com o final conseguim os const ant es. Es decir, una vez
inicializados no se puede cam biar su valor.

Para definir un at ribut o com o final ut ilizam os la keyword: fina l. La sint axis de
la declaracin es la siguient e:

m odifica dor _ a cce so fina l t ipo nom br e [ = va lor _ in icia l] ;

Ej e m plo:

prot ect ed final boolean sw = t rue;


public final int i;

Ej e m plo:

211
MDULO 2

4 .3 D e fin icin de con st a n t e s

Las const ant es en Java se suelen definir m ediant e la com binacin de las key-
word: st a t ic y fina l. La sint axis de la declaracin es la siguient e:

m odifica dor _ a cce so st a t ic fina l t ipo n om br e = va lor ;

Ej e m plo: public st at ic final double PI = 3.141592653589;

Por convencin, a la hora de program ar, las const ant es se suelen llam ar con
t odas las let ras en m aysculas.

Ej e m plo: Const ant es ya exist ent es en las clases bsicas:

j ava.lang.Mat h.PI : el nm ero PI .

j ava.lang.Mat h.E: el nm ero E.

j avax.swing.SwingConst ant s.CENTER: cent rado.

j ava.awt .event .KeyEvent .VK_ENTER: t ecla de int ro.

212
Un ida d 2 .5 Ot r os con ce pt os

En ocasiones cuando se crea una clase solo con const ant es, se suele hacer
m ediant e un int erface, debido a que no es necesario t ener ningn m t odo de-
finido ni im plem ent ado.

4 .4 St a t ic im por t s

Java SE 5.0 aado una novedad al respect o, perm it iendo la im port acin de
at ribut os y m t odos est t icos, de m anera que no haya que nom brar a la clase
para su acceso.

La sint axis de la declaracin es la siguient e:

im por t st a t ic n om br e de lpa qu e t e .n om br e de la cla se .m ie m br o;


im por t st a t ic n om br e de lpa qu e t e .n om br e de la cla se .* ;

Ej e m plo: im port st at ic j ava.lang.Syst em .out ;

Ej e m plo:

213
MDULO 2

4 . Pa so por va lor o por r e fe r e n cia

En program acin exist en dos form as de pasar parm et ros:

Por valor ( o copia) : se realiza una copia del parm et ro.

Por referencia: se pasa una referencia al parm et ro.

En C se decida m ediant e la gest in de punt eros con los operadores: * y &

En Java sin em bargo no hay decisin posible: t odo se pasa por valor. Si se m odifica
el valor de la variable recibida, no se m odifica la variable original..

Ej e m plo:

Ej e m plo:

214
Un ida d 2 .5 Ot r os con ce pt os

Ej e m plo: Realm ent e no se cam bian las referencias sino los at ribut os int ernos
de esas referencias.

215
MDULO 2

5 . Cosa s qu e ocu r r e n por de fe ct o

El com pilador realiza cosas por defect o de form a aut om t ica ( sin que est n des-
arrolladas de form a explcit a en nuest ro cdigo) . Las enum eram os a cont inuacin:

Las clases que no im port an explcit am ent e el paquet e j a-


va.lang.* lo hacen de form a im plcit a:

im port j ava.lang.* ;

Las clases que no heredan explcit am ent e de ot ra clase, here-


dan im plcit am ent e de j ava.lang.Obj ect :

public class MiClase ext ends Obj ect

216
Un ida d 2 .5 Ot r os con ce pt os

Las clases que no definan ningn const ruct or cont ienen im pl-
cit am ent e uno sin parm et ros:

public MiClase( )
{
super( ) ;
}

Los const ruct ores que no llam en a ot ro const ruct or de la m is-


m a clase o del padre, cont ienen una llam ada im plcit a al del padr e
sin parm et ros:

public MiClase( int param )


{
super( ) ;
t his.valor = param ;
}

Siem pre que se haga referencia un at ribut o o m t odo de la


propia clase, im plcit am ent e se aade t his:

t his.m iMet odo( ) ;

Todos los m t odos de un int erfaz son definidos com o abst ract
de form a im plcit a:

public abst ract int m iMet odo( ) ;

Todos los at ribut os son inicializados a su valor por defect o si


no se inicializan de form a explcit a. Cuidado, que no ocurre lo m ism o
con las variables locales.

Si no se especifica ningn package, la clase pert enece al pac-


kage por defect o.

Si no se especifica ningn m odificador de acceso al definir una


clase, at ribut o o m t odo, se le aplica el m odificador package.

217
MDULO 2

6 . I n st a n ce of

Se t rat a de un operador especial del lenguaj e Java represent ado por la keyword:
in st a n ce of. La sint axis de la declaracin es la siguient e:

obj e t o in st a n ce of cla se

Ej e m plo: num inst anceof I nt eger num inst anceof j ava.ut il.Dat e

Est e operador perm it e com probar si un obj et o es inst ancia de una clase o no. De-
vuelve un boolean por lo que puede ut ilizarse en expresiones lgicas ( condiciones) .

Bsicam ent e lo que hace es com probar si un cast ing concret o se puede realizar o
no.

Ej e m plo:

218
Un ida d 2 .5 Ot r os con ce pt os

PRCTI CA A: Cul de est os program as com pila sin errores?

Solucin:

PRCTI CA B: Cul de est os program as com pila sin errores?

219
MDULO 2

Solucin:

PRCTI CA C: Cul de est os program as com pila sin errores?

Solucin:

220
Un ida d 2 .5 Ot r os con ce pt os

PRCTI CA D : Desarrollar, t ant o en la JDK de Sun com o en Eclipse, el com ienzo de


un j uego de rol donde t engam os dist int as criat uras: Elfos, Trolls y Enanos. I nvent ad
una serie de at ribut os ( ent re ellos la fuerza) , const ruct ores y m t odos para t odos
ellos. Debern est ar en el paquet e es.j ava.aula.m ent or.pract icad.criat uras.

Al m ism o t iem po, t endrem os un int erfaz con los punt os de fuerza de cada una de
las criat uras definidas com o const ant es en el paquet e
es.j ava.aula.m ent or.pract icad.ut il. De est a m anera un sim ple cam bio en el int erfaz
act ualiza t odo el j uego.

La clase Pract icaD que se encuent ra en el paquet e es.j ava.aula.m ent or.pract icad
t iene un m t odo m ain en el que se crean una serie de criat uras y se m uest ran por
pant alla.

Aunque en est a prim era fase del desarrollo del j uego no ut ilicem os las criat uras,
realizar un diseo lo m as genrico, reut ilizable y fcil de m ant ener que se pueda.

Solucin con la JDK De Sun

En el caso de que no est puest a la variable de ent orno PATH, abrir una sesin DOS
y aj ust ar la variable de ent orno PATH para que el Sist em a Operat ivo sepa encont rar
las herram ient as del JDK. Para respet ar el valor que ya t uviese la variable PATH le
aadim os % PATH% .

221
MDULO 2

Cream os un direct orio de t rabaj o donde guardar el program a Java.

Aj ust ar la variable de ent orno CLASSPATH para que las herram ient as del JDK sepan
encont rar nuest ras clases Java. Tenem os dos opciones, o aadir el . ( punt o) y
siem pre ej ecut ar las herram ient as en el direct orio donde se encuent re el cdigo, o
aadir el direct orio de t rabaj o y ej ecut ar las herram ient as donde queram os. Para
respet ar el valor que ya t uviese la variable CLASSPATH le aadim os % CLASS-
PATH%

222
Un ida d 2 .5 Ot r os con ce pt os

Cream os los direct orios donde van a est ar nuest ras clases
es\ j ava\ aula\ m ent or\ \ pract icad\ criat uras y es\ j ava\ aula\ m ent or\ pract icad\ ut il

Desde el direct orio es\ j ava\ aula\ m ent or\ pract icad\ criat uras, con un edit or de t ext o
( por ej em plo Not epad) vam os a escribir el cdigo fuent e de cada una de nuest ras
clases j ava; el nom bre del fichero debe ser exact am ent e igual ( incluyendo
m aysculas y m insculas) al de la clase Java que vam os a desarrollar.
Em pezam os con Criat ura.j ava

223
MDULO 2

Y acept am os la creacin de un fichero nuevo.

Escribim os el cdigo y salvam os los cam bios. Cerram os el Not epad.

Hacem os el m ism o proceso para la clase Troll.j ava

224
Un ida d 2 .5 Ot r os con ce pt os

Para la clase Enano.j ava

Y para la clase Elfo.j ava

225
MDULO 2

Desde el direct orio es\ j ava\ aula\ m ent or\ pract icad\ ut il, escribim os el int erface Cons-
t ant es.j ava

Desde el direct orio es\ j ava\ aula\ m ent or\ pract icad, escribim os la clase Pract i-
caD.j ava que va a cont ener el m t odo m ain.

226
Un ida d 2 .5 Ot r os con ce pt os

Com pilam os el program a Java con el com pilador j avac . Al com pilador hay que
darle el nom bre del fichero incluyendo su ext ensin.

Podem os hacerlo desde cada uno de los direct orios donde est n las clases, indican-
do solam ent e el nom bre de la clase sin paquet e ( por ej em plo j avac Troll.j ava) o
desde el direct orio t rabaj o, indicando el nom bre com plet o de la clase ( por ej em plo
j avac es\ j ava\ aula\ m ent or\ pract icad\ criat uras\ Troll.j ava) .

Para poder com pilar las clases, es necesario que las clases que ut ilizan sean com pi-
ladas previam ent e.

A cont inuacin m ost ram os un posible orden de com pilacin:

Vem os com o han quedado las clases com piladas en cada uno de los direct orios

227
MDULO 2

Ej ecut am os la clase Pract icaD y vem os lo que sale por la consola

Ahora realizarem os la m ism a prct ica con Eclipse

Arrancar Eclipse, ej ecut ando c: \ eclipse3.5.2\ eclipse.exe

Seleccionar la ubicacin del workspace ( o rea de t rabaj o) .

228
Un ida d 2 .5 Ot r os con ce pt os

Aparecer la pant alla para em pezar a t rabaj ar.

Verificar que la perspect iva Java est abiert a, y sino cam biar a ella

229
MDULO 2

Crear un proyect o nuevo de nom bre Pract icaD

Darle el nom bre y seleccionar Finish.

230
Un ida d 2 .5 Ot r os con ce pt os

Crear un int erface Java nuevo llam ado Criat ura, especificando el paquet e
es.j ava.aula.m ent or.pract icad.criat uras.

231
MDULO 2

Seleccionar Finish
Escribir el cdigo dent ro del bloque del int erface y salvar con Ct rl + S o File - > Sa-
ve

232
Un ida d 2 .5 Ot r os con ce pt os

Crear las siguient es clases Troll , Enano, Elfo ( sin m t odo m ain) dent ro del m ism o
paquet e. Para no t ener que volver a escribir el nom bre del paquet e, podem os se-
leccionarlo va el bot n derecho del rat n y luego seleccionar el crear una nueva
clase.

233
MDULO 2

234
Un ida d 2 .5 Ot r os con ce pt os

En Eclipse, cuando se salvan los cam bios, se com pila el cdigo, por lo que no hace
falt a realizar est e paso.

Crear el int erface Const ant es en el paquet e es.j ava.aula.m ent or.pract icad.ut il.

235
MDULO 2

Por lt im o, cream os la clase que va a cont ener el m ain Pract icaD, en el paquet e j a-
va es.j ava.aula.m ent or.pract icad

236
Un ida d 2 .5 Ot r os con ce pt os

Seleccionando la clase Java Pract icaD, con el bot n derecho del rat n ej ecut arla
com o Java Applicat ion

Vem os la salida por la consola

237
MDULO 2

238
Un ida d 2 .5 Ot r os con ce pt os

En est a unidad hem os vist o dist int os concept os que nos perm it en organizar nues-
t ro cdigo y m odificar el acceso a nuest ras clases, m t odos y at ribut os.

Pa que t e s: son una caract erst ica del lenguaj e que nos perm it e organizar
el cdigo en grupos. Fsicam ent e, cada uno de los subgrupos del paquet e
se conviert en en un direct orio del sist em a operat ivo.

M odifica dor e s de a cce so: son una caract erst ica del lenguaj e que nos
posibilit a delim it ar quin o desde donde se puede acceder a una clase, a
un m t odo o a un at ribut o. Exist en cuat ro delim it adores:
- public: puede acceder t odo el m undo.
- prot ect ed: Solam ent e se pueden acceder desde el m ism o
paquet e o subclases de ot ros paquet es.
- : Solam ent e se pueden acceder desde el m ism o paquet e.
- privat e: Solam ent e se puede acceder desde la m ism a clase.

Adicionalm ent e hem os vist o ot ros keyword que m odifican el com port am ient o de
clases, at ribut os y m t odos
M t odos e st t icos: son m t odos que son dependient es de la clase a la
que pert enecen y no a una inst ancia de una clase.

At r ibu t os e st t icos: son at ribut os de clase y son com part idos por t odas
las inst ancias de la clase a la que pert enecen.

Bloque s e st t icos: son bloques de cdigo que se ej ecut an una sola vez
cuando la clase es cargada en m em oria.

Cla se s fin a le s: son clases de la que nadie m s puede heredar.


MDULO 2 PROGRAMACIN JAVA

M t odos fin a le s: son m t odos que no pueden ser sobreescrit os.


At r ibu t os fin a le s: son at ribut os que una vez definidos no se puede cam biar su
valor. Si se ut ilizan conj unt am ent e con la keyword st a t ic, se conviert en en cons-
t ant es a nivel de clase.

You might also like