Está en la página 1de 57

G u ía d e J a v a B á s ic a | In g .

A r n a ld o R o d r íg u e z

IN T R O D U C C IÓ N

L a p r o g r a m a c ió n o r ie n t a d a a o b je t o s e s u n a t é c n ic a d e a n á lis is y d is e ñ o

q u e s e e n f o c a e n lo s e le m e n t o s d e u n s is t e m a , s u s a t r ib u t o s y r e s p o n s a b ilid a d e s .

E l m o d e lo a b s tra c to e s tá fo rm a d o de c la s e s . U n a c la s e d e s c r ib e a un

c o n ju n t o de o b je t o s que c o m p a rte lo s m is m o s a t r ib u t o s , c o m p o r t a m ie n t o y

s e m á n t ic a .

U n o b je t o e s u n a in s t a n c ia d e u n a c la s e .

L a s c la s e s r e p r e s e n t a n un esquem a s im p lif ic a d o d e la c a s u í s t ic a de un

p r o b le m a d e t e r m in a d o .

P a r a d is e ñ a r u n s is t e m a o r ie n t a d o a o b je t o s e s n e c e s a r io r e s p o n d e r la s

s ig u ie n t e s p r e g u n t a s .

¿ C u á le s s o n lo s e le m e n t o s t a n g ib le s d e u n s is t e m a ?

¿ C u á le s s o n s u s a t r ib u t o s ?

¿ C u á le s s o n s u s r e s p o n s a b ilid a d e s ?

¿ C ó m o s e r e la c io n a n lo s e le m e n t o s d e l s is t e m a ?

¿ Q u é o b je t o d e b e “ h a c e r ” . . . ?

La r e u t iliz a c ió n de c ó d ig o es una de la s g ra n d e s v e n t a ja s de la

p r o g r a m a c ió n o r ie n t a d a a o b je t o s , r e d u c e e l t ie m p o d e d e s a r r o llo d e a p lic a c io n e s

e in c r e m e n t a la p r o d u c t iv id a d d e lo s in g e n ie r o s d e s o f t w a r e .

 R e u t iliz a c ió n d e c la s e s .

 D is e ñ o d e u n a n u e v a c la s e a p a r t ir d e o t r a ( h e r e n c ia )
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

P R O G R A M A C IÓ N O R IE N T A D A A O B J E T O S

C O N C E P T O S B Á S IC O S

C LA S E :

T ip o d e f in id o p o r e l u s u a r io q u e d e t e r m in a la s e s t r u c t u r a s d e d a t o s y la s

o p e r a c io n e s a s o c ia d a s c o n e s e t ip o .

E l m o d e lo d e c la s e s e s t á c o m p u e s t o p o r :

 E le m e n t o s t a n g ib le s ( o b je t o s )

 A t r ib u t o s ( c a m p o s )

 R e s p o n s a b ilid a d e s ( o p e r a c io n e s o m é t o d o s )

 L im it a c io n e s d e d is e ñ o ( c o n t r a t o d e l o b je t o )

O B JE TO

C o r r e s p o n d e a u n a in s t a n c ia d e e s a c la s e . T o d o s lo s o b je t o s d e u n a c la s e

c o m p a r t e n la s m is m a s c a r a c t e r í s t ic a s .

A p a r t ir de una c la s e se puede o b te n e r un o b je t o ( in s t a n c ia ) que se

c o m u n ic a con o tro s o b je t o s m e d ia n t e m e n s a je s . C a d a o b je t o t ie n e un e s ta d o

p r o p io .

C a d a o b je t o r e s p o n d e a u n c o n ju n t o d e p e t ic io n e s d e f in id a s e n la in t e r f a z

d e la c la s e a la q u e p e r t e n e c e .

L a in t e r f a z o f r e c e a l e x t e r io r e l c o m p o r t a m ie n t o d e l o b je t o . E l c ó d ig o y lo s

d a to s in t e r n o s que se u t iliz a n p a ra re s p o n d e r a una p e t ic ió n se d e n o m in a n

im p le m e n t a c ió n .

U n o b je t o s e c o m p o n e d e :

 In te rfa z : q u é s e o fre c e

 I m p le m e n t a c ió n : c ó m o s e o f r e c e

E N C A P S U L A C IÓ N

La e n c a p s u la c ió n c o n s is t e en fo rm a r un “p a q u e te ” con lo s a t r ib u t o s

( v a r ia b le s ) y e l c o m p o r t a m ie n t o ( m é t o d o s ) d e u n o b je t o .

L o s m é t o d o s f o r m a n la m e m b r a n a e x t e r io r d e u n o b je t o y “ e s c o n d e n ” lo s

d e t a lle s d e im p le m e n t a c ió n .

La e n c a p s u la c ió n hace que un s is t e m a sea m ás f á c il d e c o m p re n d e r y

f a c ilit a e l m a n t e n im ie n t o d e u n a a p lic a c ió n .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

L a e n c a p s u la c ió n p e r m it e o c u lt a r lo s d a t o s y la f u n c io n a lid a d d e u n o b je t o .

A d e m á s , f a c ilit a la r e u t iliz a c ió n d e o b je t o s .

L a in t e r f a z d e la c la s e d e u n o b je t o p e r m it e q u e o t r o s o b je t o s a c c e d a n a

lo s a t r ib u t o s y a lo s m é t o d o s p ú b lic o s d e u n o b je t o

H E R E N C IA

L a h e r e n c ia e s la c a p a c id a d d e u n a c la s e p a r a d e f in ir s e e n t é r m in o s d e

o t r a c la s e y h e r e d a r a t r ib u t o s y r e s p o n s a b ilid a d e s d e la c la s e d e o r d e n s u p e r io r .

L a h e r e n c ia p e r m it e d is e ñ a r c la s e s a p a r t ir d e o t r a s c la s e s . U n a s u b c la s e

p u e d e a ñ a d ir o m o d if ic a r la f u n c io n a lid a d d e la c la s e d e o r d e n s u p e r io r .

U n a s u b c la s e p u e d e a m p lia r o e x t e n d e r e l c o m p o r t a m ie n t o d e la c la s e d e

o r d e n s u p e r io r

U na s u b c la s e puede m o d if ic a r e l c o m p o r t a m ie n t o de la c la s e de o rd e n

s u p e r io r s o b r e s c r ib ie n d o lo s m é t o d o s v ir t u a le s . ( E n ja v a t o d o s lo s m é t o d o s s o n

v ir t u a le s ) .

P O L IM O R F IS M O

E l p o lim o r f is m o p e r m it e q u e d is t in t o s o b je t o s p e r t e n e c ie n t e s a u n a m is m a

c la s e “ r e s p o n d a n ” d e d if e r e n t e s f o r m a s a u n m is m o m e n s a je

E l p o lim o r f is m o e s la c a p a c id a d de m o d if ic a r e l c o m p o r t a m ie n t o de una

c la s e m e d ia n t e la s o b r e e s c r it u r a d e m é t o d o s .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

P R O G R A M A C IÓ N E N J A V A

J a v a e s u n le n g u a je o r ie n t a d o a o b je t o s . E n J a v a , t o d o e s u n o b je t o . L o s

o b je t o s s e d e f in e n e n t é r m in o s d e la c la s e a la q u e p e r t e n e c e n .

E l e s t a d o d e u n o b je t o s e m o d if ic a u t iliz a n d o lo s m é t o d o s d e la c la s e .

L a s c la s e s r e p r e s e n t a n o b je t o s d e la r e a lid a d ( d o m in io ) a l q u e s e r e f ie r e

u n p ro g ra m a J a v a .

L a s c la s e s s e d e f in e n a p a r t ir d e u n c o n ju n t o d e a t r ib u t o s y m é t o d o s . C a d a

a t r ib u t o p u e d e e s t a r lim it a d o a u n d o m in io d e v a lo r e s

L a s c la s e s s o n c o n c e p t o s a b s t r a c t o s . L o s o b je t o s s o n in s t a n c ia s d e la s

c la s e s , s e c r e a n d u r a n t e la e je c u c ió n d e lo s p r o g r a m a s .

Los m é to d o s de la s c la s e s r e a liz a n a c c io n e s que m o d if ic a n la s

p r o p ie d a d e s d e lo s o b je t o s

S IN T A X IS :

P a ra c o m p re n d e r m e jo r la s in t a x is del p ro g ra m a debem os pensar en

t é r m in o s d e á m b it o o a lc a n c e . P r im e r o h a y q u e s a b e r q u e lo s c o m e n t a r io s e s t á n

f u e r a d e l p r o g r a m a , n o e s t á n d e n t r o d e s u á m b it o , e l c o m p ila d o r n o lo s in t e r p r e t a ,

s o n s e ñ a le s q u e e l p r o g r a m a d o r u s a p a r a f a c ilit a r la c o m p r e n s ió n d e l c ó d ig o .

E l á m b it o m ás e x te rn o es donde im p o r t a m o s lo s re c u rs o s que se

r e q u e r ir á n p a r a e l p r o g r a m a y d o n d e d e c la r a m o s e l p r o g r a m a m is m o . A q u í e s t á

el p r in c ip io de to d o . E n Java s ie m p r e d e s a r r o lla r e m o s c la s e s , y s ie m p r e

u s a r e m o s c la s e s y a h e c h a s q u e im p o r t a r e m o s .

A sí que al com enzar a d e s a r r o lla r un p ro g ra m a debem os p r im e r o

d e t e r m in a r la c la s e p r in c ip a l

public cl ass Pr imer_E jemplo

public st atic v oid ma in(Stri ng[] a rgs)


{

System.ou t.prin tln("H ola Mun do");

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E x p lic a c ió n d e l P ro g ra m a P rim e r_ P ro g ra m a lín e a a lín e a

E s t e s im p le p r o g r a m a , a p e s a r d e n o s e r m u y e x t e n s o , c o n t ie n e m u c h o s

d e lo s c o n c e p t o s d e la p r o g r a m a c ió n o r ie n t a d a a o b je t o s e n J a v a . N o s e p r e t e n d e

q u e , a p a r t ir d e l m is m o , s e a p r e n d a n y c o m p r e n d a n la t o t a lid a d d e lo s a s p e c t o s

de la P O O y la s in t a x is del Java, p e ro sí que puede a f ir m a r s e que una vez

c o m p r e n d id a y a s im ila d a s u f ilo s o f í a , s e e s t a r á e n u n p u n t o b a s t a n t e c e r c a n o a

lo s c o n o c im ie n t o s b á s ic o s n e c e s a r io s p a r a e n t e n d e r lo s .

La p r im e r a lí n e a del p ro g ra m a d e c la r a una c la s e lla m a d a

P r im e r _ P r o g r a m a , q u e e s d e s c e n d ie n t e , a l n o in d ic a r n o s o t r o s q u e h e re d e de

o t r a c la s e , d e la c la s e O b j e c t . E n t r e la s lla v e s d e la c la s e H o la , s e d e c la r a n lo s

a t r ib u t o s y lo s m é to d o s de la c la s e . T o d o lo que se e n c u e n tre e n tre la lla v e

a b ie r t a “{“ y la lla v e c e rra d a “}” p e rte n e c e a la c la s e P r im e r _ P r o g r a m a . E n

n u e s t r o e je m p lo , ú n ic a m e n t e t ie n e u n m é t o d o : m a i n .

L a s lla v e s n o s ir v e n ú n ic a m e n t e p a r a m a r c a r e l in ic io y e l f in d e u n a c la s e .

S e u t iliz a n p a ra m a r c a r p r in c ip io y f in a l d e b lo q u e s d e c ó d ig o y se in t e r p r e t a n

m e d ia n t e e l m é t o d o L IF O (L a s t In F ir s t O u t ) d o n d e , e l ú lt im o en e n tra r e s e l

p r im e r o e n s a lir . E n e l e je m p lo e x is t e n , a d e m á s d e la s lla v e s a b ie r t a y c e r r a d a

de la c la s e , o t r a s lla v e s a b ie r t a y c e rra d a d e n tro d e l m é to d o m a in (). Q u e se

in t e r p r e t e n m e d ia n t e e l m é to d o L IF O s ig n if ic a que la lla v e c e rra d a “}” del

m é t o d o m a i n ( ) e n m a r c a e l b lo q u e a b ie r t o p o r la ú lt im a lla v e “ { “ a n t e s d e é s t a .

Todo p ro g ra m a in d e p e n d ie n t e e s c r it o en Java e m p ie z a a e je c u t a r s e

(c o m o en C ) a p a r t ir d e l m é t o d o m a in (). S e pueden c o m p ila r c la s e s que no

p o s e a n m é t o d o m a i n ( ) , p e r o e l in t é r p r e t e J a v a n o p o d r á e je c u t a r la s in ic ia lm e n t e ,

a u n q u e s í p u e d e n e je c u t a r s e s i s o n lla m a d a s d e s d e o t r o m é t o d o e n e je c u c ió n .

D e c la r a c ió n d e l m é t o d o m a i n ( ) :

 p u b l i c : in d ic a q u e e l m é t o d o m a i n ( ) e s p ú b lic o y , p o r t a n t o , p u e d e

s e r lla m a d o desde o tra s c la s e s . Todo m é to d o m a in () debe ser

p ú b lic o p a r a p o d e r e je c u t a r s e d e s d e e l in t é r p r e t e J a v a ( J V M ) .

 s t a t i c : in d ic a q u e la c la s e n o n e c e s it a s e r in s t a n c ia d a p a r a poder

u t iliz a r e l m é t o d o al que c a lif ic a . ( N o se c re a n in g u n a in s t a n c ia u

o b je t o de la c la s e P r im e r _ P r o g r a m a ) . T a m b ié n in d ic a que el

m é to d o es el m is m o p a ra to d a s la s in s t a n c ia s que p u d ie r a n

c re a rs e .

 v o i d : in d ic a q u e la f u n c ió n m a i n n o d e v u e lv e n in g ú n v a lo r .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

 E l m é t o d o m a i n d e b e a c e p t a r s ie m p r e , c o m o p a r á m e t r o , u n v e c t o r

d e S t r i n g , q u e c o n t e n d r á lo s p o s ib le s a r g u m e n t o s q u e s e le p a s e n

a l p ro g ra m a en la lí n e a de com andos, aunque com o es n u e s tro

c a s o , n o s e u t ilic e .

S i n o s e h a n c o m p r e n d id o m u y b ie n t o d o s e s t o s c o n c e p t o s n o im p o r t a , d e

m o m e n t o . H a y u n a r e g la s e n c illa q u e n u n c a f a lla .

E l m é t o d o m a i n ( ) s ie m p r e s e d e c la r a d e la m is m a f o r m a :

public st atic v oid ma in(Stri ng[] a rgumen tos)

La in s t r u c c ió n que r e a lm e n t e r e a liz a el t r a b a jo e f e c t iv o de n u e s tro

p r o g r a m a e s la s ig u ie n t e :

System.ou t.prin tln("h ola, mu ndo");

E s t e lí n e a in d ic a q u e s e v a a e je c u t a r e l m é t o d o p rin tln (), e n c a rg a d o d e

m o s t r a r u n v a lo r a t r a v é s d e la s a lid a e s t á n d a r ( e n n u e s t r o caso, un S trin g ) y

d e s p u é s r e a liz a r u n r e t o r n o d e c a rro y n u e v a lí n e a . E s t e m é t o d o p e rte n e c e al

a t r ib u t o o u t. E s te a t r ib u t o se e n c u e n tra in c lu id o d e n tro de la c la s e S y s te m .

C o m o c u r io s id a d (d e m o m e n to ), c a b e m e n c io n a r q u e e s ta c la s e e s s ta tic (n o

h e m o s d e c la r a d o n in g ú n o b je t o d e la c la s e S y s t e m ) .

¿ U n p o c o c o m p lic a d o p a r a s im p le m e n t e m o s t r a r u n m e n s a je e n p a n t a lla ?

E s p o s ib le que s í lo sea p a ra a q u e llo s que aún no conocen la p r o g r a m a c ió n

o r ie n t a d a a o b je t o s , p e r o una v e z c o n o c id o s y a s im ila d o s lo s c o n c e p t o s d e la

P O O ( P r o g r a m a c ió n O r ie n t a d a a O b je t o s ) e l p r o g r a m a es b a s ta n te s e n c illo y

ló g ic o . P a r a a q u e llo s q u e c o n o z c a n C + + p e n s a r á n q u e e s b a s t a n t e p a r e c id o a lo

q u e h a b r í a n e s c r it o e n s u “ le n g u a je f a v o r it o ” . E s t e c o le c t iv o c o m p r o b a r á q u e e s

m u c h o m á s f á c il q u e C y t ie n e a lg u n a s v e n t a ja s .

Á m b ito d e u n a v a ria b le

E l á m b it o d e u n a v a r ia b le e s la p o r c ió n d e p r o g r a m a d o n d e d ic h a v a r ia b le

e s v is ib le p a r a e l c ó d ig o d e l p r o g r a m a y , p o r t a n t o , r e f e r e n c ia b le .

E l á m b it o de una v a r ia b le depende d e l lu g a r del p ro g ra m a donde es

d e c la r a d a , p u d ie n d o p e r t e n e c e r a t r e s c a t e g o r í a s d is t in t a s .

 V a r ia b le lo c a l

 A t r ib u t o

 P a rá m e tro d e u n m é to d o
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

C o m o p u e d e o b s e r v a r s e , N O e x is t e n la s v a r ia b le s g lo b a le s . E s t o n o e s u n

“ d e f e c t o ” d e l le n g u a je s in o t o d o lo c o n t r a r io . L a u t iliz a c ió n d e v a r ia b le s g lo b a le s

r e s u lt a p e lig r o s a , y a q u e p u e d e s e r m o d if ic a d a e n c u a lq u ie r p a r t e d e l p r o g r a m a

y p o r c u a lq u ie r p r o c e d im ie n t o . A d e m á s , a la h o r a d e u t iliz a r la s h a y q u e buscar

dónde e s tá n d e c la r a d a s p a r a c o n o c e r la s y d ó n d e son m o d if ic a d a s p a r a e v it a r

s o r p r e s a s e n lo s v a lo r e s q u e p u e d e n c o n t e n e r .

Los á m b it o s de la s v a r ia b le s u o b je t o s en Java s ig u e n lo s c r it e r io s

“ c lá s ic o s ” , a l ig u a l q u e en la m a y o ría de lo s le n g u a je s d e p r o g r a m a c ió n com o

P a s c a l, C + + , e t c . N o e x is t e n s o r p r e s a s .

S i u n a v a r ia b le n o h a s id o in ic ia liz a d a , t ie n e u n v a lo r a s ig n a d o p o r d e f e c t o .

E s t e v a lo r e s , p a r a la s v a r ia b le s d e t ip o r e f e r e n c ia l ( o b je t o s ) , e l v a lo r n u l l . P a r a

la s v a r ia b le s d e t ip o n u m é r ic o , e l v a lo r p o r d e f e c t o e s c e r o ( 0 ) , la s v a r ia b le s d e

t ip o c h a r , e l v a lo r ‘ \ u 0 0 0 0 ’ y la s v a r ia b le s d e t ip o b o o le a n , e l v a lo r f a l s e

V a ria b le s lo c a le s

U n a v a r ia b le lo c a l s e d e c la r a d e n t r o d e l c u e r p o d e u n m é t o d o d e u n a c la s e

y e s v is ib le ú n ic a m e n t e d e n t r o d e d ic h o m é t o d o .

S e puede d e c la r a r en c u a lq u ie r lu g a r d e l c u e rp o , in c lu s o después de

in s t r u c c io n e s e je c u t a b le s , a u n q u e e s u n a b u e n a c o s t u m b r e d e c la r a r la s ju s t o al

p r in c ip io . T a m b ié n p u e d e n d e c la r a r s e v a r ia b le s d e n t r o d e u n b lo q u e e n c e rra d o

p o r lla v e s { … } . E n e s e c a s o , s ó lo s e r á n “ v is ib le s ” d e n t r o d e d ic h o b lo q u e . O t r a s

v a r ia b le s lo c a le s s o n la s d e c la r a d a s d e n t r o d e b u c le s la s c u a le s s o n lib e r a d a s o

m u e r e n a l t é r m in o d e l m is m o .

A trib u to s

L o s a t r ib u t o s d e u n a c la s e s o n la s c a r a c t e r í s t ic a s q u e s e v a n a t e n e r e n

c u e n ta s o b re u n o b je t o y p o r lo ta n to s u á m b it o e s t á c ir c u n s c r it o , e n p r in c ip io ,

d e n t r o d e la c la s e a la c u a l c a r a c t e r iz a n . S e d e c la r a n d e la m is m a f o r m a q u e la s

v a r ia b le s lo c a le s p e r o , a d e m á s , p u e d e n t e n e r a lg u n o s m o d if ic a d o r e s q u e a f e c t a n

a l á m b it o d e lo s m is m o s y q u e s e v e r á n m á s a d e la n t e .

P a rá m e tro s d e u n m é to d o

L o s p a rá m e tro s s e d e c la r a n en la c a b e c e ra d e l m é to d o de la s ig u ie n t e

fo rm a :
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

[ M o d if ic a d o r e s d e m é t o d o ] [ T ip o _ d e v u e lt o ] [N o m b re _ d e _ m é to d o ]

( lis t a _ d e _ p a r á m e t r o s ) { }

L a lis t a _ d e _ p a r á m e t r o s c o n s is t e e n u n a s e r ie d e v a r ia b le s , s e p a r a d a s p o r

c o m a s y d e c la r a n d o e l t ip o a l q u e p e r t e n e c e n .

E je m p lo :

public st atic v oid mi Método( int v1 , int v2, fl oat v3) {…}

N ó te s e que aunque e x is t a n v a r io s p a r á m e t r o s p e r t e n e c ie n t e s a l m is m o

t ip o o c la s e , no pueden d e c la r a r s e a b r e v ia d a m e n t e , com o o c u rre con la s

v a r ia b le s lo c a le s y lo s a t r ib u t o s .

L a d e c la r a c ió n d e u n p a r á m e t r o p u e d e ir a n t e c e d id a , c o m o o c u r r e c o n la s

v a r ia b le s lo c a le s , p o r la p a la b r a r e s e r v a d a f i n a l . E n e s e c a s o , e l v a lo r d e d ic h o

p a r á m e t r o n o p o d r á s e r m o d if ic a d o e n e l c u e r p o d e l m é t o d o .

L o s p a r á m e t r o s d e u n m é t o d o p u e d e n s e r d e d o s t ip o s :

 V a ria b le s de tip o s im p le de d a to s : E n e s te caso, el paso de

p a rá m e tro s se r e a liz a s ie m p r e por v a lo r . E s d e c ir , e l v a lo r del

p a rá m e tro de lla m a d a no puede s e r m o d if ic a d o en e l c u e rp o del

m é to d o (E l m é to d o t r a b a ja c o n u n a c o p ia d e l v a lo r u t iliz a d o e n la

lla m a d a ) .

 V a ria b le s de tip o o b je to (re fe re n c ia s ): E n e s te caso, lo que

r e a lm e n t e s e p a s a a l m é t o d o e s u n p u n t e r o a l o b je t o y , p o r lo t a n t o ,

e l v a lo r d e l p a rá m e tro de lla m a d a sí que puede ser m o d if ic a d o

d e n tro d e l m é to d o (E l m é to d o t r a b a ja d ir e c t a m e n t e con e l v a lo r

u t iliz a d o en la lla m a d a ) , a n o ser que se a n te p o n g a la p a la b r a

re s e rv a d a fin a l

T ip o d e l p a r á m e tr o M é to d o d e p a s e d e

p a rá m e tro

T ip o s im p le de d ato s (e je m p lo : in t, c h a r, b o o le a n , d o u b le , P o r v a lo r

e tc .)

T ip o re fe re n c ia l (O b je to s d e u n a d e te rm in a d a c la s e , v e c to re s P o r r e fe r e n c ia

y S trin g s )
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

C o m e n ta rio s

Los c o m e n t a r io s en lo s p ro g ra m a s fu e n te son m uy im p o r t a n t e s en

c u a lq u ie r le n g u a je . S ir v e n p a r a a u m e n t a r la f a c ilid a d d e c o m p r e n s ió n d e l c ó d ig o

y p a r a r e c o r d a r c ie r t a s c o s a s s o b r e e l m is m o . S o n p o r c io n e s d e l p r o g r a m a f u e n t e

que no s e rá n c o m p ila d a s , y, por ta n to , no o c u p a rá n e s p a c io en el f ic h e r o

“ e je c u t a b le ” . Ú n ic a m e n t e s ir v e n p a r a d o c u m e n t a r .

S i u n c o m e n t a r io d e b e o c u p a r m á s d e u n a lí n e a , h a y q u e a n t e p o n e r le / * y

a l f in a l * /

E je m p lo

/* Esto e s un

comentari o que

ocupa tre s líne as */

S i e l c o m e n t a r io que se desea e s c r ib ir e s d e una s o la lí n e a , b a s t a con

p o n e r d o s b a r r a s in c lin a d a s : / /

E je m p lo

// Coment ario d e una linea

System.ou t.prin tln(“A diós”);

N o p u e d e p o n e r s e c ó d ig o d e s p u é s d e u n c o m e n t a r io in t r o d u c id o p o r / / e n

la m is m a lí n e a , y a q u e d e s d e la a p a r ic ió n d e la s d o s b a r r a s in c lin a d a s / / h a s t a e l

f in a l d e la lí n e a e s c o n s id e r a d o c o m o c o m e n t a r io e ig n o r a d o p o r e l c o m p ila d o r .

E x is t e o tro t ip o de c o m e n t a r io que s ir v e p a ra g e n e ra r d o c u m e n t a c ió n

a u t o m á t ic a m e n t e en fo rm a to H TM L m e d ia n t e la h e r r a m ie n t a ja v a d o c . P u e d e

o c u p a r v a r ia s lí n e a s y s e in ic ia c o n / * * p a r a t e r m in a r c o n * / .

T ip o s d e D a to s

E n ja v a e x is t e n d o s t ip o s p r in c ip a lm e n t e d e d a t o s

 T ip o s d e d a t o s s im p le s

 T ip o s d e d a t o s d e r e f e r e n c ia u o b je t o s .

Los t ip o s de d a to s s im p le s son a q u e llo s que pueden u t iliz a r s e

d ir e c t a m e n t e en un p r o g r a m a , s in n e c e s id a d del uso de c la s e s ( P O O ) . E s to s

t ip o s s o n : b y t e , s h o r t , in t , lo n g , f lo a t , d o u b lé , c h a r . B o o le a n .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E l segundo t ip o e s tá fo rm a d o por to d o s lo s dem ás. S e le s lla m a

r e f e r e n c ia s p o r q u e e n r e a lid a d lo q u e s e a lm a c e n a e n lo s m is m o s s o n p u n t e r o s

a z o n a s d e m e m o r ia d o n d e s e e n c u e n t r a n a lm a c e n a d a s la s e s t r u c t u r a s d e d a t o s

que lo s s o p o rta n . D e n tro de e s te g ru p o se e n c u e n tra n la s c la s e s ( o b je t o s ) y

t a m b ié n s e in c lu y e n la s in t e r f a c e s , lo s v e c t o r e s y lo s S t r in g s .

P u e d e n r e a liz a r s e c o n v e r s io n e s e n t r e lo s d is t in t o s t ip o s d e d a t o s ( in c lu s o

e n t r e s im p le s y r e f e r e n c ia le s ) , b ie n d e f o r m a im p lí c it a o d e f o r m a e x p lí c it a .

T ip o s d e d a to s s im p le s

T IP O D E S C R IP C IÓ N FO R M A TO TA M A Ñ O E N R A N G O

M E M O R IA

B Y TE b y te C o m p le m e n to 1 b y te [-1 2 8 ,1 2 7 ]
a dos

S H O R T E n te ro c o rto C o m p le m e n to 2 b y te [-3 2 .7 6 8 ,3 2 .7 6 8 ]

a dos

IN T E n te ro C o m p le m e n to 4 b y te [-2 .1 4 7 .4 8 3 .6 4 8 ,
a dos 2 .1 4 7 .4 8 3 .6 4 8 ]

LO N G E n te r o la r g o C o m p le m e n to 8 b y te [-9 .2 2 3 .3 7 2 .0 3 6 .8 5 4 .7 7 5 .8 0 8 ,

a dos 9 .2 2 3 .3 7 2 .0 3 6 .8 5 4 .7 7 5 .8 0 8 ]
-38 38
FLO A T R eal en com a IE E E 7 5 4 3 2 b its [± 3 .4 *1 0 , ± 3 .4 *1 0 ]
flo ta n te d e s im p le

p r e c is ió n
-308 308
D O U B LÉ R eal en com a IE E E 7 5 4 6 4 b its [± 1 .7 *1 0 , ± 1 .7 *1 0 ]
flo ta n te d e d o b le

p r e c is ió n

C H A R T c a rá c te r U n ic o d e 2 b y te [0 ,6 5 .5 3 5 ]

B O O LE A N ló g ic o --- 1 b it T r u e /fa ls e

N o e x is t e n m á s d a t o s s im p le s e n J a v a . I n c lu s o é s to s q u e se e n u m e ra n

son e n v u e lt o s por c la s e s e q u iv a le n t e s ( ja v a .la n g .In te g e r , ja v a .la n g .D o u b le ,

ja v a . la n g . B y t e , e t c . ) , q u e pueden t r a t a r lo s c o m o s i fu e ra n o b je t o s e n lu g a r d e

d a t o s s im p le s .

A d if e r e n c ia d e o t r o s le n g u a je s d e p r o g r a m a c ió n c o m o e l C , e n J a v a lo s

t ip o s d e d a t o s s im p le s n o d e p e n d e n d e la p la t a f o r m a n i d e l s is t e m a o p e r a t iv o .

U n e n t e r o d e t ip o i n t s ie m p r e t e n d r á 4 b y t e s , p o r lo q u e n o t e n d r e m o s s o r p r e s a s

a l m ig r a r u n p r o g r a m a d e u n s is t e m a o p e r a t iv o a o t r o . E s m á s , n i s iq u ie r a hay

q u e v o lv e r lo a c o m p ila r .

E s o s í , J a v a n o r e a liz a u n a c o m p r o b a c ió n d e lo s r a n g o s . P o r e je m p lo : s i

a u n a v a r ia b le d e t ip o s h o r t c o n e l v a lo r 3 2 . 7 6 7 s e le s u m a 1 , e l r e s u lt a d o s e r á -

3 2 . 7 6 8 y n o s e p r o d u c ir á n in g ú n e r r o r d e e je c u c ió n .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

A d if e r e n c ia d e o t r o s le n g u a je s d e p r o g r a m a c ió n , lo s S trin g en Java no

s o n u n t ip o s im p le d e d a t o s s in o u n o b je t o q u e s e e s t u d ia r á p o r s e p a r a d o . L o s

v a lo r e s d e t ip o S t r i n g v a n e n t r e c o m illa s d o b le s “ H o l a ” , m ie n t r a s q u e lo s d e t ip o

c h a r v a n e n t r e c o m illa s s im p le s ‘K ’.

T ip o s d e d a to s re fe re n c ia le s .

E l re s to de t ip o s de d a to s que no son s im p le s , son c o n s id e r a d o s

r e f e r e n c ia le s . E s t o s t ip o s son b á s ic a m e n t e la s c la s e s , e n la s que se basa la

p r o g r a m a c ió n o r ie n t a d a a o b je t o s .

A l d e c la r a r un o b je t o p e r t e n e c ie n t e a una d e t e r m in a d a c la s e , se e s tá

re s e rv a n d o u n a zona d e m e m o r ia donde se a lm a c e n a r á n lo s a t r ib u t o s y o t r o s

d a t o s p e r t e n e c ie n t e s a d ic h o o b j e t o . L o q u e s e a lm a c e n a e n e l o b je t o e n s í , e s

u n p u n t e r o ( r e f e r e n c ia ) a d ic h a z o n a d e m e m o r ia .

D e n t r o d e e s t o s t ip o s p u e d e n c o n s id e r a r s e la s in t e r f a c e s , lo s S t r in g , lo s

v e c to re s , D a te , que son u n a s c la s e s u n ta n to e s p e c ia le s , y q u e se v e rá n en

d e t a lle p o s t e r io r m e n t e .

E x is t e u n t ip o r e f e r e n c ia l e s p e c ia l n o m in a d o p o r la p a la b r a r e s e r v a d a n u l l

q u e p u e d e s e r a s ig n a d o a c u a lq u ie r v a r ia b le d e c u a lq u ie r c la s e y q u e in d ic a q u e

e l p u n te ro no t ie n e r e f e r e n c ia a n in g u n a zona de m e m o r ia ( e l o b je t o no e s tá

in ic ia liz a d o ) .

A dem ás, to d o s lo s t ip o s de d a to s s im p le s v is t o s en e l p u n to a n t e r io r

p u e d e n s e r d e c la r a d o s c o m o r e f e r e n c ia le s ( o b je t o s ) , y a q u e e x is t e n c la s e s q u e

lo s e n g lo b a n .

E s t a s c la s e s s o n :

T IP O D E D A TO S IM P L E C L A S E E Q U IV A L E N T E

B Y TE ja v a .la n g .B y te

S H O R T ja v a .la n g .S h o r t

IN T ja v a .la n g .In te g e r

LO N G ja v a .la n g .L o n g

FLO A T ja v a .la n g .F lo a t

D O U B LÉ ja v a .la n g .D o u b le

C H A R ja v a .la n g .C h a r a c te r

B O O LE A N ja v a .la n g .B o o le a n
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E je m p lo d e v a r ia b le s s im p le

public cl ass Ej emplo_ Variabl es_Sim ples{

public st atic v oid ma in(stri ng[] a rgs){

byte by1, by2= 10;


by 1= (by te) (by 2 + 20 );

sh ort sh 1,sh2=3 0;

sh1 = (sh ort)(s h2 + 1 0);

int a=1,b ;
b = a + 2 ;

long l1,l 2;

l1 = 10l;
l2= 16300 400l;

float f1= 20.30f ,f2 =3 0;

double d1 =302.0 25d, d 2=20;


boolean b 1,b2 = true;

b1 = !b2;

char c1=' 2', c2 ='u';

Sy stem.o ut.prin tln("V ariabl e de t ipo byt e: "+b y1+" - ->> "+ by2);
System.ou t.prin tln("V ariable de tipo shor t: " +sh1+" -->> " +sh2);

System.ou t.prin tln("V ariable de ti po int : " + a + " - ->> " + b);

System.ou t.prin tln("V ariable de tipo lo ng: "+ l1 + " - ->> " + l2);
System.ou t.prin tln("V ariable de tip o f loat: "+f1 + " --> > " + f2);

System.ou t.prin tln("V ariable de tip o do uble: "+d1 +" - ->> " + d2);

System.ou t.prin tln("V ariable de tipo boole an: " +b1+" -->> " + b2);

System.ou t.prin tln("V ariable de ti po cha r: "+c 1+" --> > " + c2);

L a s a lid a e s :

Variable de tip o byte : 30 -- >> 10

Variable de tip o shor t: 40 - ->> 30


Variable de tip o int: 1 -->> 3

Variable de tip o long : 10 -- >> 163 00400

Variable de tip o floa t: 20.3 -->> 30.0


Variable de tip o doub le: 302 .025 - ->> 20 .0

Variable de tip o bool ean: fa lse -- >> tru e

Variable de tip o char : 2 --> > u

E n e l e je m p lo a n t e r io r p o d e m o s v e r la d e c la r a c ió n d e v a r ia b le s s im p le s

e n ja v a y o p e r a c io n e s e n t r e e lla s . E s im p o r t a n t e m e n c io n a r q u e p a r a o p e r a r la s

v a r ia b le s d e t ip o s h o r t y b y t e h a y q u e h a c e r u n a c o n v e r s ió n a l r e s u lt a d o d e la

o p e r a c ió n y a q u e e l c o m p ila d o r n o r e a liz a la c o n v e r s ió n d e f o r m a a u t o m á t ic a es

d e a llí q u e la o p e r a c ió n s e a n t e p o n e ( s h o r t ) o ( b y t e ) p a r a h a c e r la c o n v e r s ió n .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

C L A S E S T R IN G :

U n a S t r in g e s u n a v a r ia b le r e f e r e n c ia d a a s o c ia d a a u n o b je t o d e la c la s e

ja v a . la n g . S t r in g . S e e m p le a p a r a a lm a c e n a r c a d e n a s d e c a r a c t e r e s .

L a s S t r in g t ie n e n u n a c a r a c t e r í s t ic a q u e la s d if e r e n c ia d e l r e s t o d e o b je t o s :

s o n in m u t a b le s , e s d e c ir , n o s e p u e d e m o d if ic a r . A l a p lic a r le s u n m é t o d o , n o s e

m o d if ic a n s in o q u e s e c r e a o t r o S t r in g n u e v o a p a r t ir d e l p r im e r o .

U n S t r in g s e p u e d e d e c ir q u e e s u n a r r e g lo d e c h a r c o n la p a r t ic u la r id a d

q u e s o lo s e p u e d e a c c e d e r a la s p o s ic io n e s d e l a r r e g lo d e f o r m a s o lo le c t u r a . E l

c o n s t r u c t o r d e lo s S t r in g e s t á n s o b r e c a r g a d o y u n o d e lo s p a r á m e t r o s q u e r e c ib e

e s u n a r r e g lo d e c h a r .

M É TO D O S P A R A S T R IN G

L e n g th : se u t iliz a p a ra o b te n e r e l ta m a ñ o de un S t r in g . D e v u e lv e un

e n t e r o q u e e s la c a n t id a d d e c a r a c t e r e s q u e t ie n e n e l S t r in g .

c h a rA t(IN T ); se u t iliz a p a ra o b te n e r un c a rá c te r en una p o s ic ió n

d e t e r m in a d a .

t o C h a r A r r a y ( ) ; s e u t iliz a p a r a c o n v e r t ir u n o b je t o S t r in g e n u n a r r e g lo d e

c a ra c te re s .

g e t c h a r ( ) ; p a r a g u a r d a r u n n u m e r o d e c a r á c t e r d e u n S t r in g e n u n a r r e g lo .

g e tc h a r(a ,b ,c [],d )

D ónde:

a = p o s ic ió n in ic ia l d e l S t r in g .

b = n ú m e r o d e c a r a c t e r e s a c o p ia r .

c = a r r e g lo d o n d e s e v a a c o p ia r .

d = p o s ic ió n d e l a r r e g lo d o n d e s e v a a e m p e z a r a c o p ia r .

N O T A : a , b , d s o n e n te ro s y c a rre g lo d e tip o c h a r .

s u b S trin g (): S e u t iliz a p a r a c re a r u n a c a d e n a q u e s e rá una subcadena

de una cadena dada.

s u b s trin g (in t a , in t b );

in t a : e s u n e n t e r o q u e in d ic a la p o s ic ió n in ic ia l d o n d e s e v a a c o p ia r .

I n t b : e s u n e n t e r o q u e in d ic a e l n ú m e r o d e c a r a c t e r e s a c o p ia r .

in d e x o f(S trin g ): d e v u e lv e la p o s ic ió n de la p r im e r a o c u r r e n c ia de la

c a d e n a q u e s e le e n v í a .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

l a s t i n d e x o f ( S t r i n g ) : d e v u e lv e la p o s ic ió n de la ú lt im a o c u r r e n c ia de la

c a d e n a q u e s e le e n v í a .

to lo w e rC a s e (): s e u t iliz a p a ra tra n s fo rm a r u n a cadena de m in ú s c u la a

m a y ú s c u la .

to u p p e C a s e (): s e u t iliz a p a ra tra n s fo rm a r u n a cadena de m a y ú s c u la a

m in ú s c u la .

r e p l a c e ( c h a r v i e j o C h a r , c h a r n u e v o C h a r ) : c a m b ia e l c a r á c t e r a s o c ia d o

a l p r im e r a r g u m e n t o p o r e l q u e s e le p a s a a l s e g u n d o , d e la S t r in g s o b r e la q u e

se a p lic a e l m é to d o g e n e ra n d o una n u e v a . E l S t r in g s o b re la que se a p lic a el

m é t o d o n o c a m b ia , s im p le m e n t e s e c r e a o t r a n u e v a e n b a s e a é l.

e q u a l s ( S t r i n g s t r ) : in v e s t ig a s i d o s S t r in g t ie n e n lo s m is m o s c a r a c t e r e s y

e n e l m is m o o r d e n . S i e s a s í d e v u e lv e t r u e y s i n o f a ls e .

e q u a l s I g n o r e C a s e ( S t r i n g s t r ) : in v e s t ig a s i d o s S t r in g t ie n e n lo s m is m o s

c a ra c te re s y en e l m is m o o rd e n s in to m a r en c u e n ta si son m a y ú s c u la s o

m in ú s c u la . S i e s a s í d e v u e lv e t r u e y s i n o f a ls e .

s t a r t s W i t h ( S t r i n g s t r ) : d e v u e lv e t r u e s i la S t r in g s o b r e la que se a p lic a

c o m ie n z a p o r e l a r g u m e n t o ; f a ls e s i e s t o n o o c u r r e .

s t a r t s W i t h ( S t r i n g s t r , i n t i n d i c e ) : d e v u e lv e t r u e s i la S t r in g s o b r e la q u e

s e a p lic a c o m ie n z a p o r e l a r g u m e n t o a p a r t ir d e u n d e t e r m in a d o í n d ic e a s o c ia d o

a l s e g u n d o a r g u m e n t o ; f a ls e s i e s t o n o o c u r r e .

e n d s W ith (S trin g s t r ) : d e v u e lv e tru e s i la S t r in g s o b re la que se a p lic a

t e r m in a e n e l a r g u m e n t o ; f a ls e s i e s t o n o o c u r r e .

t r i m ( ) : d e v u e lv e u n a S t r in g , p e r o s in e s p a c io s e n b la n c o a l p r in c ip io n i a l

f in a l. N o e lim in a lo s e s p a c io s e n b la n c o s it u a d o s e n t r e la s p a la b r a s .

s p li(S trin g ): D iv id e la cadena en ‘n ’ pedazo, ‘n ’ es la c a n t id a d de

o c u r r e n c ia d e l a r g u m e n t o y d e v u e lv e u n a r r e g lo d e S t r in g d e t a m a ñ o ‘n ’

A c o n t in u a c ió n d o s e je m p lo s d e lo s m é t o d o s d e S t r in g
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

public cl ass Ej emplos DeStrin g {

publi c stat ic voi d main( String [] arg s) {

St ring c adena = "La c sa se quema" ;


Sy stem.o ut.pri ntln(ca dena.l ength( ));

Sy stem.o ut.pri ntln(ca dena.c harAt( 3));

Sy stem.o ut.pri ntln(ca dena.s ubstri ng(0,5 ));

Sy stem.o ut.pri ntln(ca dena.i ndexOf ("sa") );


Sy stem.o ut.pri ntln(ca dena.l astInd exOf(" a"));

Sy stem.o ut.pri ntln(ca dena.t oLower Case() );

Sy stem.o ut.pri ntln(ca dena.t oUpper Case() );


Sy stem.o ut.pri ntln(ca dena.r eplace ("a"," i"));

Sy stem.o ut.pri ntln(ca dena.e quals( "la cs a se qu ema")) ;

Sy stem.o ut.pri ntln(ca dena.e qualsI gnoreC ase("La csa s e quem a"));
Sy stem.o ut.pri ntln(ca dena.s tartsW ith("L a"));

Sy stem.o ut.pri ntln(ca dena.s tartsW ith("c ",3));

Sy stem.o ut.pri ntln(ca dena.t rim()) ;

ch ar[] a = cad ena.toC harArr ay();

ch ar[] b = ne w char[ 5];

ca dena.g etChar s(0, 5, b, 0) ;


St ring[] s = c adena.s plit(" ");

}//fi n del main

}// fin d e la c lase

L a s a lid a p o r c o n s o la e s :

15

La cs

4
14

la csa se quema

LA CSA SE QUEMA
Li csi se quemi

false

true

true
true

La csa se quema

E n e l e je m p lo a n t e r io r s e in c o r p o r ó v e c t o r e s u n id im e n s io n a le s d e S t r in g y

c h a r, s o lo se c o lo c a r o n p a ra poder ilu s t r a r lo s m é to d o S p lit ( ) , g e tC h a rs () y

t o C h a r A r r a y ( ) . L o s a r r e g lo s s e e x p lic a r á n m á s a d e la n t e .

T o d o s lo s o b je t o s d e J a v a s o n e x t e n s io n e s d e la c la s e O b j e c t . L o s

m é t o d o s p ú b lic o s y p r o t e g id o s d e e s t a c la s e s o n
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

 p u b lic b o o le a n e q u a ls ( O b je c t o b j)
c o m p a r a s i d o s o b je t o s s o n ig u a le s , p o r d e f e c t o u n o b je t o e s ig u a l
s o la m e n t e a s i m is m o
 p u b lic in t h a s h C o d e ( ) d e v u e lv e ( c o n a lt a p r o b a b ilid a d ) u n v a lo r d is t in t o
p a r a c a d a o b je t o
 p r o t e c t e d O b je c t c lo n e ( ) t h r o w s C lo n e N o t S u p o r t e d E x c e p t io n d e v u e lv e
u n a c o p ia b in a r ia d e l o b je t o ( in c lu y e n d o s u s r e f e r e n c ia s )
 p u b lic f in a l C la s s g e t C la s s ( ) d e v u e lv e e l o b je t o d e l t ip o C la s s q u e
r e p r e s e n t a d ic h a c la s e d u r a n t e la e je c u c ió n
 p r o t e c t e d v o id f in a liz e ( ) t h r o w s T h r o w a b l e s e u s a p a r a f in a liz a r e l o b je t o ,
e s d e c ir , s e a v is a a l a d m in is t r a d o r d e la m e m o r ia q u e y a n o s e u s a d ic h o
o b je t o , y s e p u e d e e je c u t a r c ó d ig o e s p e c ia l a n t e s d e q u e s e lib e r e la
m e m o r ia
 p u b lic S t r in g t o S t r in g ( ) d e v u e lv o u n a c a d e n a d e s c r ib ie n d o e l o b je t o

L a s c la s e s d e r iv a d a s d e b e n s o b r e s c r ib ir lo s m é t o d o s a d e c u a d a m e n t e , p o r
e je m p lo e l m é t o d o e q u a ls

E je m p lo d e U s o d e la c la s e O b je c t

public cl ass Ej emplos LaClase Object {

publi c stat ic voi d main( String [] arg s) {

Ob ject a , b;

in t c;
a = 50;

b = 30;

c = (int )a + ( int)b;
Sy stem.o ut.pri ntln(c) ;

St ring s = "Hol a";

Ob ject s 2 = "M undo";

s = s + " " + s2.toSt ring() ;


Sy stem.o ut.pri ntln(s) ;

}//fi n del main

}// fin d e la c lase

S a lid a p o r c o n s o la :

80

Hola Mund o

E n e l e je m p lo a n t e r io r s e puede n o ta r q u e la s v a r ia b le s d e t ip o O b je c t

s o p o rta to d a s la s v a r ia b le s p r im it iv a s de ja v a y o b je t o s que v e re m o s m ás

a d e la n t e . A p e s a r q u e p a r a a s ig n a r le v a lo r n o s e n e c e s it a n h a c e r la c o n v e r s ió n

p a r a o p e r a r e n t r e e lla s s i lo e s .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

D A TE

L a c la s e D a t e f u e d e la s p r im e r a s d e l p a q u e t e j a v a . u t i l y c o m o t a l h a id o

s u f r ie n d o c a m b io s . B a s ta n te s m é to d o s e s tá n “d e p re c a d o s ”. U n m é to d o

d e p r e c a d o ( d e p r e c a t e d ) e s u n m é t o d o “ o b s o le t o ” d e u s o n o r e c o m e n d a d o .

E s to s m é to d o s h a n s u f r id o m e jo r a s o c a m b io s q u e se r e f le ja n en o tro s

m é to d o s o c la s e s de uso re c o m e n d a d o s en lu g a r del d e p re c a te d . P or

c o m p a t ib ilid a d s e p e r m it e e l u s o d e e s to s m é to d o s , a u n q u e s e r e c o m ie n d a su

s u s t it u c ió n p o r o t r o s . E l m o t iv o p o r lo s q u e m u c h o s d e lo s m é t o d o s d e e s t a c la s e

e s t á n d e p r e c a t e d , e s s o b r e t o d o p o r t e m a s d e in t e r n a c io n a liz a c ió n e n e l f o r m a t o

d e fe c h a s q u e n o s e t u v ie r o n en c u e n ta e n la s p r im e r a s v e r s io n e s d e Java. A

pesar de t o d o , e s t a c la s e p e r m it e la in t e r p r e t a c ió n de fe c h a s c o m o año, m es,

d ía , h o ra , m in u t o s y segundos y c o n t in ú a s ie n d o b a s ta n te usada e n tre la

c o m u n id a d d e p r o g r a m a d o r e s .

A lg u n a s c o n s id e r a c io n e s q u e d e b e m o s t e n e r e n c u e n t a c u a n d o usem os

e s t a c la s e e s q u e e n t o d o s lo s m é t o d o s q u e a c e p t e n o d e v u e lv a n a ñ o s , m e s e s ,

d ía s , h o r a s , m in u t o s y s e g u n d o s s e t r a b a ja d e e s t a m a n e r a :

 U n a ñ o “ y ” s e r e p r e s e n t a p o r e l e n t e r o y – 1 . 9 0 0 . P o r e je m p lo e l a ñ o 1 9 8 2

se re p re s e n ta ría por e l e n te ro 1982 – 1900 = 82. D e e s te m odo, 82

re p re s e n ta 1 9 8 2 y 9 2 re p re s e n ta 1 9 9 2 . E l a ñ o 2 0 0 4 s e re p re s e n ta c o m o

1 0 4 (2 0 0 4 - 1 9 0 0 ).

 Los m eses son re p re s e n ta d o s desde 0 h a s ta 11, así E n e ro es 0 y

D ic ie m b r e e s 1 1 .

 L o s d í a s s o n n o r m a lm e n t e r e p r e s e n t a d o s d e s d e 1 a l 3 1 .

 L a s h o ra s d e s d e 0 a 2 3 .

 L o s m in u t o s v a n d e s d e 0 a 5 9 .

 Los segundos n o r m a lm e n t e van desde 0 h a s ta 5 9 . ( E x c e p c io n a lm e n t e

p u e d e n e x is t ir lo s s e g u n d o s 6 0 y 6 1 p a r a lo s a ñ o s b is ie s t o s ) .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E je m p lo d e la c la s e d a t e

import ja va.tex t.Simp leDateF ormat;


import ja va.uti l.Date ;

public cl ass Ej emplos LaClase Date {


publi c stat ic voi d main( String [] arg s) {

Si mpleDa teForm at sdf = new Simple DateFo rmat("d d-MM-y yyy");

Si mpleDa teForm at sdf2 = new Simpl eDateF ormat(" dd/MM/ yyyy") ;

Da te fec ha1 = new Dat e("11/ 20/201 2");


Da te fec ha2 = new Dat e(116, 9,20); //20/1 0/2016

Sy stem.o ut.pri ntln("F echa 1 Local "+ fe cha1.to Locale String ());

Sy stem.o ut.pri ntln("F echa 2 Local "+fec ha2.toL ocaleS tring( ));
Sy stem.o ut.pri ntln("F echa 1 GMT " + fech a1.toGM TStrin g());

Sy stem.o ut.pri ntln("F echa 2 GMT " +fecha 2.toGMT String ());

Sy stem.o ut.pri ntln("F echa 1 "+ fe cha1.t oString ());

Sy stem.o ut.pri ntln("F echa 2 "+fec ha2.to String( ));


Sy stem.o ut.pri ntln("F echa1 es post erior Fech a2? " +

fecha1.af ter(fe cha2)) ;

Sy stem.o ut.pri ntln(sd f.form at(fec ha1));


Sy stem.o ut.pri ntln(sd f2.for mat(fe cha2)) ;

}//fi n del main

}// fin d e la c lase

S a lid a p o r c o n s o la

Fecha 1 L ocal 2 0-nov- 2012 0: 00:00

Fecha 2 L ocal 2 0-oct- 2016 0: 00:00

Fecha 1 G MT 19 Nov 20 12 23:0 0:00 G MT

Fecha 2 G MT 19 Oct 20 16 22:0 0:00 G MT

Fecha 1 T ue Nov 20 00 :00:00 CET 20 12

Fecha 2 T hu Oct 20 00 :00:00 CEST 2 016

Fecha1 es poste rior F echa2? false

20-11-201 2

20/10/201 6

E s tru c tu ra d e C o n tro l

L a s e s t r u c t u r a s d e c o n t r o l s o n c o n s t r u c c io n e s h e c h a s a p a r t ir d e p a la b r a s

re s e rv a d a s del le n g u a je que p e r m it e n m o d if ic a r el f lu jo de e je c u c ió n de un

p ro g ra m a . D e e s te m odo, pueden c re a rs e c o n s t r u c c io n e s de a lt e r n a t iv a s y

b u c le s d e r e p e t ic ió n d e b lo q u e s d e in s t r u c c io n e s .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

H a y q u e s e ñ a la r q u e u n b lo q u e d e in s t r u c c io n e s s e e n c o n t r a r á e n c e r r a d o

m e d ia n t e lla v e s { … … . . } s i e x is t e m á s d e u n a in s t r u c c ió n .

E x is t e n 3 e s t r u c t u r a s o s e n t e n c ia d e c o n t r o l e n ja v a

 if - e ls e

 s w it c h

 o p e r a c ió n t e r n a r ia ‘? ’

IF -E L S E

F o r m a S im p le

if ( c o n d ic ió n ló g ic a )

B lo q u e d e in s t r u c c io n e s

E l b lo q u e de in s t r u c c io n e s s e e je c u t a s i, y s ó lo s i, la c o n d ic ió n ló g ic a al

ser e v a lu a d a da com o r e s u lt a d o v e rd a d e ro ( tru e ), es d e c ir , se c u m p le una

d e t e r m in a d a c o n d ic ió n .

if(contad or==0)
System .out.pr intln( “el co ntador ha lle gado a cero” );

L a e x p r e s ió n System.out.println(“el contador ha llegado a cero” ); s ó lo

s e e je c u t a r a c u a n d o la v a r ia b le c o n t a d o r c o n t e n g a e l v a lo r c e r o .

C o n c lá u s u la E ls e

i f ( c o n d ic ió n ló g ic a )

B lo q u e d e I n s t r u c c io n e s 1

e ls e

B lo q u e d e in s t r u c c io n e s 2

E l b lo q u e d e in s t r u c c io n e s 1 s e e je c u t a s i, y s ó lo s i, a l e v a lu a r la e x p r e s ió n

ló g ic a d a c o m o r e s u lt a d o v e r d a d e r o ( t r u e ) . Y e n c a s o c o n t r a r io , s i la e x p r e s ió n

se e v a lú a y da com o r e s u lt a d o f a ls o ( f a ls e ) , se e je c u t a r a el b lo q u e de

in s t r u c c io n e s 2 .

if(contad or == 0)

Syste m.out. printl n(“El c ontado r ha l legado a cero ” );

else

Syste m.out. printl n(“El c ontado r no h a lleg ado a c ero” );

S i la v a r ia b le c o n t a d o r v a le c e r o , s e m o s t r a r á e n e l m e n s a je “ E l c o n t a d o r

h a lle g a d o a c e r o ” . Y s i c o n t a d o r c o n t ie n e c u a lq u ie r o t r o v a lo r d is t in t o d e c e r o ,

s e m o s t r a r á e l m e n s a je “ E l c o n t a d o r n o h a lle g a d o a c e r o ” .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

IF -E L S E A N ID A D O

E n M uchas o c a s io n e s , s e a n id a n e s tru c tu ra s if-e ls e , d e fo rm a que se

p re g u n te n por una c o n d ic ió n si a n t e r io r m e n t e no se ha c u m p lid o o tra

s u c e s iv a m e n t e . P o r e je m p lo , s u p o n g a m o s que r e a liz a m o s un p ro g ra m a que

m u e s t r a la n o t a d e u n a lu m n o e n la f o r m a ( in s u f ic ie n t e , s u f ic ie n t e , s o b r e s a lie n t e )

e n f u n c ió n d e s u n o t a n u m é r ic a . P o d r í a c o d if ic a r s e d e la s ig u ie n t e m a n e r a .

if(no ta < 5 )
Sy stem.o ut.pri ntln("i nsufic iente" );

else

if(no ta < 7 )
S ystem. out.pr intln(" sufici ente") ;

else

S ystem. out.pr intln(" sobres alient e");

E n Java, com o en C y a d if e r e n c ia d e o t r o s le n g u a je s d e p r o g r a m a c ió n ,

e n e l c a s o d e q u e e l b lo q u e d e in s t r u c c io n e s c o n s t e d e u n a s o la in s t r u c c ió n ( n o

n e c e s it a e n c e r r a r la s in s t r u c c io n e s e n lla v e s ) .

S W IT C H

F o r m a S im p le :

s w i t c h ( e x p r e s ió n )
{
c a s e v a lo r 1 : in s t r u c c io n e s 1 b r e a k ;
c a s e v a lo r 2 : in s t r u c c io n e s 2 b r e a k ;
c a s e v a lo r N : in s t r u c c io n e s N b r e a k ;
}
E je m p lo fo rm a s im p le

switch (día)

{
case 2: Sys tem.ou t.prin tln("L unes"); brea k;

case 3: Sy stem.ou t.prin tln("M artes" ); brea k;

case 4: Sys tem.ou t.print ln("Mi ércole s"); break ;


case 5: Sys tem.ou t.print ln("Ju eves") ; break ;

case 6: Sys tem.out .print ln("Vi ernes" ); break;

case 7: Sys tem.ou t.print ln("Sá bado") ; break;

cas e 1: S ystem. out.pri ntln(" Doming o");


}

N ó t e s e q u e e n e l c a s o q u e s e in t r o d u z c a u n v a lo r n o c o m p r e n d id o e n t r e 1 y 7 ,

n o s e r e a liz a r á n in g u n a a c c ió n . E s t o p u e d e c o r r e g ir s e u t iliz a n d o e l s ig u ie n t e

fo rm a to :
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

s w i t c h ( e x p r e s ió n )
{
c a s e v a lo r 1 : in s t r u c c io n e s 1 b r e a k ;
c a s e v a lo r 2 : in s t r u c c io n e s 2 b r e a k ;
c a s e v a lo r N : in s t r u c c io n e s N b r e a k ;
d e f a u l t : in s t r u c c io n e s P o r D e f e c t o ;
}

E n e s te caso, in s tru c c io n e s P o rD e fe c to se e je c u t a r á n cuando n in g ú n

v a lo r c a s e c o in c id a con e l v a lo r d e e x p r e s ió n . O en caso de e je c u t a r a lg u n a s

in s t r u c c io n e s en a lg u n o de lo s case, que no haya n in g u n a in s t r u c c ió n b reak

d e s d e e s e p u n t o h a s t a la c lá u s u la d e f a u l t .

O p e ra c ió n te rn a ria ‘? ’

La O p e r a c ió n t e r n a r ia es la s im p lif ic a c ió n de un if-e ls e , es d e c ir , una

m a n e r a e le g a n t e d e e x p r e s a r u n p u n t o d e d e c is ió n s im p le .

F o r m a : c o n d ic ió n ló g ic a ? in s t r u c c io n e s 1 : in s t r u c c io n e s 2

S i la c o n d ic ió n ló g ic a es v e rd a d e ra se e je c u t a in s t r u c c io n e s 1 de lo

c o n t r a r io s e r e a liz a r a la s in t r u s io n e s 2 .

E je m p lo

String a = nota >= 5 ? “Apro bado” : “Rep robado ”

E n e s t e e je m p lo s i la v a r ia b le n o t a e s m a y o r o ig u a l q u e 5 la v a r ia b le a d e

t ip o S t r in g s e le a s ig n a r a “ A p r o b a d o ” d e lo c o n t r a r io s e le a s ig n a r a “ R e p r o b a d o ”

A R R E G L O S U N ID IM E N S IO N A L E S (V E C T O R E S ):

P a ra m a n e ja r c o le c c io n e s d e o b je t o s o d a to s p r im it iv o s d e l m is m o t ip o

e s tru c tu ra d o s e n una s o la v a r ia b le se u t iliz a n lo s a r r e g lo s u n id im e n s io n a le s o

v e c t o r e s . E n J a v a , lo s v e c t o r e s s o n e n r e a lid a d o b je t o s y p o r lo t a n t o s e p u e d e

lla m a r a s u s m é t o d o s ( c o m o s e v e r á e n e l c a p í t u lo s ig u ie n t e ) .

E x is t e n d o s f o r m a s e q u iv a le n t e s d e d e c la r a r v e c t o r e s e n J a v a :

 t ip o n o m b r e D e lV a t o r [ ] ;

 t ip o [ ] n o m b r e D e lv e c t o r ;
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

U n a s im p le d e c la r a c ió n d e u n v e c t o r n o r e s e r v a e s p a c io e n m e m o r ia , P a r a

re s e rv a r la m e m o r ia hay que lla m a r e x p lí c it a m e n t e a un c o n s tru c to r de la

s ig u ie n t e f o r m a :

int arreg lo[] = new i nt [3];

char c[]= new c har[3] ;

R e p r e s e n t a c ió n g r á f ic a d e u n v e c t o r d e 1 2 p o s ic io n e s .

0 1 2 3 4 5 6 7 8 9 10 11

L o s v e c t o r e s , a l ig u a l q u e la s d e m á s v a r ia b le s p u e d e n s e r in ic ia liz a d o s e n

e l m o m e n to de su d e c la r a c ió n . E n e s te caso, no es n e c e s a r io e s p e c if ic a r el

n ú m e ro de e le m e n t o s m á x im o re s e rv a d o se re s e rv a el e s p a c io ju s t o p a ra

a lm a c e n a r lo s e le m e n t o s a ñ a d id o s e n la d e c la r a c ió n .

int arreg lo[] = {1,2, 3,4};

char a[] = {‘a’ ,’e’,’ i’,’o’, ’u’};

P a r a h a c e r r e f e r e n c ia a lo s e le m e n t o s p a r t ic u la r e s d e l v e c t o r , s e u t iliz a e l

id e n t if ic a d o r d e l v e c t o r ju n t o c o n e l í n d ic e d e l e le m e n t o e n t r e c o r c h e t e s . E l í n d ic e

d e l p r im e r e le m e n t o e s e l c e r o ( 0 ) y e l d e l ú lt im o , e l n ú m e r o d e e le m e n t o s m e n o s

uno.

int arreg lo[] = new i nt [3];

arreglo[0 ] = 10 ;

arreglo[1 ] = 16 ;
arreglo[2 ] = 30 ;

R e p r e s e n t a c ió n g r á f ic a d e l v e c t o r a r r e g lo

0 1 2

10 16 30

V e c to re s b id im e n s io n a le s o m a tric e s

S on v e c to re s de la fo rm a V [ i j] d o n d e “ i” y “ j” son e n te ro s p o s it iv o s

d if e r e n t e s d e c e r o q u e r e p r e s e n t a n la s f ila s y la s c o lu m n a s r e s p e c t iv a m e n t e . S e

P u e d e d e c ir q u e , u n v e c t o r b id im e n s io n a l e s u n v e c t o r d e v e c t o r e s .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

R e p r e s e n t a c ió n g r á f ic a d e v e c t o r b id im e n s io n a l o m a t r iz

00 01 02 03
10 11 12 13
20 21 22 23

30 31 32 33

La t a b la a n t e r io r es la r e p r e s e n t a c ió n g r á f ic a de un V e c to r n*n, es

im p o r t a n t e r e s a lt a r q u e lo s v a lo r e s d e n t r o d e la t a b la r e p r e s e n t a n lo s í n d ic e s d e

acceso.

D e c la ra c ió n d e v e c to re s b id im e n s io n a le s s in a s ig n a rle v a lo r

int a[][] = new int[2 ][2];


char b[][ ] = ne w char [4][2];

P o d e m o s v e r q u e e l a r r e g lo b e s d e t ip o c h a r n o e s c u a d r a d o t ie n e n 4 f ila s

y 2 c o lu m n a s p o r lo q u e s u r e p r e s e n t a c ió n g r á f ic a e s la s ig u ie n t e :

00 01
10 11
20 21
30 31

D e c la ra c ió n d e v e c to re s b id im e n c io n a ls a s ig n a n d o le v a lo re s

int a[][] ={{0, 2},{10 ,15}};

int b[][] = new int[2 ][2];

b[0][0] = 10;

b[0][1] = 10;
b[1][0] = 15;

b[1][1] = 30;

String [] [] Mat riz =

{"Ped ro", " Julián ", "Jos é"},


{"Arn aldo", "Luis ", "Rho nald"} ,

{"Mar cos", "Pablo ", "Fra nk"}

};

E l v e c t o r d e n o m b r e m a t r iz e s d e 3 x 3 y s u r e p r e s e n t a c ió n g r á f ic a e s :

P e d ro J u liá n José

A r n a ld o L u is R h o n a ld
M a rc o s P a b lo F ra n k
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

B u c le s

L o s b u c le s s o n e s t r u c t u r a s d e r e p e t ic ió n . B lo q u e s d e in s t r u c c io n e s q u e s e

r e p it e n u n n ú m e r o d e v e c e s m ie n t r a s s e c u m p la u n a c o n d ic ió n o h a s t a q u e se

c u m p la u n a c o n d ic ió n .

E x is t e n 4 t ip o s d e b u c le s e n ja v a

 B u c le f o r

 B u c le f o r - lo o p

 B u c le d o - w h ile

 B u c le w h ile

C o m o r e g la g e n e r a l p u e d e d e c ir s e q u e s e u t iliz a r á e l b u c le f o r c u a n d o s e

conozca de a n te m a n o el n ú m e ro e x a c to de veces que ha de r e p e t ir s e un

d e t e r m in a d o b lo q u e d e in s t r u c c io n e s . S e u t iliz a r á e l b u c le d o -w h ile c u a n d o no

s e c o n o c e e x a c t a m e n t e e l n ú m e r o d e v e c e s q u e s e e je c u t a r á e l b u c le p e r o se

sabe que p o r lo m enos se ha d e e je c u t a r u n a vez. S e u t iliz a r á e l b u c le w h ile

cuando es p o s ib le que no deba e je c u t a r s e n in g u n a vez y e l f o r - lo o p es una

e x t e n s io n d e l f o r p a r a it e r a r v e c t o r e s .

E s ta s r e g la s son g e n e r a le s y a lg u n o s p ro g ra m a d o re s se s ie n t e n m ás

c ó m o d o s u t iliz a n d o p r in c ip a lm e n t e u n a d e e lla s . C o n m a y o r o m e n o r e s f u e r z o ,

p u e d e u t iliz a r s e c u a lq u ie r a d e e lla s in d is t in t a m e n t e .

B U C LE FO R

f o r ( in ic ia liz a c ió n ; c o n d ic ió n ; a c t u a liz a c ió n )
b lo q u e d e in s t r u c c io n e s

 L a c lá u s u la in ic ia liz a c ió n e s u n a in s t r u c c ió n q u e s e e je c u t a u n a s o la

v e z a l in ic io d e l b u c le , n o r m a lm e n t e p a r a in ic ia liz a r u n c o n t a d o r .

 La c lá u s u la c o n d ic ió n es una e x p r e s ió n ló g ic a , q u e se e v a lú a al

in ic io de cada nueva it e r a c ió n d e l b u c le . E n e l m o m e n to en que

d ic h a e x p r e s ió n s e e v a lú e a f a ls e , s e d e ja r á d e e je c u t a r e l b u c le y

el c o n tro l del p ro g ra m a p a s a rá a la s ig u ie n t e in s t r u c c ió n (a

c o n t in u a c ió n d e l b u c le f o r ) .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

 L a c lá u s u la a c t u a liz a c ió n e s u n a in s t r u c c ió n q u e s e e je c u t a e n c a d a

it e r a c ió n d e l b u c le com o s i fu e ra la ú lt im a in s t r u c c ió n d e n tro del

b lo q u e d e in s t r u c c io n e s . G e n e r a lm e n t e s e t r a t a d e u n a in s t r u c c ió n

de in c r e m e n t o o d e c re m e n to de a lg u n a v a r ia b le p a ra ro m p e r el

c ic lo .

C u a lq u ie r a d e e s t a s t r e s c lá u s u la s p u e d e e s t a r v a c í a , a u n q u e S IE M P R E

h a y q u e p o n e r lo s p u n t o s y c o m a ( ; ) .

E n e l s ig u ie n t e e je m p lo m u e s t r a e l t é r m in o d o c e ( 1 2 ) d e la s e r ie d e f ib o n a c c i

public cl ass Ej emplos DeFibon acci {


publi c stat ic voi d main( String [] arg s) {

int a=1, b=1, c =2;

Sys tem.ou t.prin t("1, 1 , ");


for (int i =1 ; i <= 10 ; i++ )

a = b;
b =c;

c = a + b;

i f(i!= 10)

Syste m.out. print(c + ", ");


e lse

Syste m.out. println (c + " ...");

}//fi n del main

}// fin d e la c lase

L a s a lid a p o r c o n s o la e s :

1, 1, 3, 5, 8, 13, 21 , 34, 5 5, 89, 144, 233...

E n e s t e e je m p lo p o d e m o s v e r la s o b r e c a r g a d e l o p e r a d o r “ + ” q u e a l o p e r a r

u n S t r i n g c o n u n e n t e r o h a c e la c o n v e r s ió n d e l e n t e r o a S t r i n g y c o n c a d e n a .

L a v a r ia b le “ i ” e s t á d e c la r a d a d e n t r o d e la c lá u s u la in ic ia liz a c ió n lo q u e le

d a u n á m b it o d e c ic lo , e s d e c ir , d ic h a v a r ia b le t ie n e u n t ie m p o d e v id a lim it a d o a l

b u c le p o r lo t a n t o a l t e r m in a e l m is m o la v a r ia b le m u e r e .

B U C LE W H IL E

w h i l e ( c o n d ic ió n ) {

b lo q u e d e I n s t r u c c io n e s

A c t u a liz a c ió n
}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E n e s t e b u c le la c o n d ic ió n s e c o m p r u e b a A N T E S d e e m p e z a r a e je c u t a r

p o r p r im e r a v e z e l b u c le , p o r lo q u e s i la e x p r e s ió n s e e v a lú a a f a ls e e n la p r im e r a

it e r a c ió n , e n t o n c e s e l b lo q u e d e in s t r u c c io n e s n o s e e je c u t a r á n in g u n a v e z . E s

im p o r t a n t e m e n c io n a r q u e e n e s t e t ip o d e b u c le la a c t u a liz a c ió n d e la v a r ia b le d e

c o n tro l e s tá d e n tro d e l b lo q u e d e in s t r u c c io n e s y d e n o c o lo c a r s e no h a b rá un

e r r o r d e s in t a x is s in o d e ló g ic a y e l b u c le c e r a in f in it o .

E je m p lo : E l m is m o e je m p lo d e l c ic lo f o r ( F ib o n a c c i)

public cl ass Ej emplos DeFibon acci {

publi c stat ic voi d main( String [] arg s) {


int a=1, b=1, c =2, i;

System.ou t.prin t("1, 1, ");

i=1;
whi le(i<= 10)

a = b;

b = c;
c = a + b;

if(i!= 10)

Syste m.out. print( c + ", ");


else

System .out.pr intln( c + ". ..");

i +=1;

}//fi n del main

}// fin d e la c lase

L a s a lid a p o r c o n s o la e s :

1, 1, 3, 5, 8, 13, 21 , 34, 5 5, 89, 144, 233...

B U C LE D O -W H IL E

do{

b lo q u e d e I n s t r u c c io n e s

A c t u a liz a c ió n d e la v a r ia b le d e c o n t r o l

} w h i l e ( c o n d ic ió n d e p a r a d a ) ;

E n e s t e t ip o d e b u c le , e l b lo q u e d e in s t r u c c io n e s s e e je c u t a p o r lo m e n o s

u n a v e z , y e l m is m o s e e je c u t a r á m ie n t r a s la e x p r e s ió n s e e v a lú e a t r u e . P o r lo

t a n t o , e n t r e la s in s t r u c c io n e s q u e s e r e p it e n d e b e r á e x is t ir a lg u n a q u e , e n a lg ú n

m o m e n t o , h a g a q u e la e x p r e s ió n s e e v a lú e a f a ls e , d e lo c o n t r a r io e l b u c le s e r í a

in f in it o .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E je m p lo : E l m is m o e je m p lo d e l c ic lo f o r ( F ib o n a c c i)

public cl ass Ej emplos DeFibon acci {


publi c stat ic voi d main( String [] arg s) {

int a=1, b=1, c =2, i;

System.ou t.prin t("1, 1, ");


i=1;

do

{
a = b;

b = c;

c = a + b;

if(i!= 10)
Sys tem.ou t.print (c + " , ");

else

System .out.pr intln( c + ". ..");


i +=1;

}wh ile(i< =10);

}//fi n del main


}// fin d e la c lase

L a s a lid a p o r c o n s o la e s :

1, 1, 3, 5, 8, 13, 21 , 34, 5 5, 89, 144, 233...

B U C LE FO R - LO O P

C om o se m e n c io n ó a n t e r io r m e n t e el fo r-lo o p es una e x t e n s ió n o

a d a p t a c ió n d e l f o r c o m ú n p a r a it e r a r c o le c c io n e s o v e c t o r e s .

E s t r u c t u r a d e l f o r - l o o p p a r a v e c t o r e s u n id im e n s io n a le s

f o r ( T ip o v a r ia b le : c o le c c ió n )

B lo q u e in s t r u c c io n e s

 T ip o : e s e l t ip o d e d a t o s q u e s e e s t á c o le c c io n a n d o e n e l v e c to r,

p u e d e n s e r d a t o s p r im it iv o s d e ja v a u o b je t o s d e c la s e s .

 V a r ia b le : e s e l n o m b re de la v a r ia b le que va a o b te n e r e l d a to

c o le c c io n a d o e n u n in s t a n t e d a d o , e l f o r - lo o p r e c o r r e lo s v e c t o r e s

d e f o r m a s e c u e n c ia l.

 C o le c c ió n : E s e l v e c t o r q u e s e v a a it e r a r
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E s t r u c t u r a d e l f o r - l o o p p a r a u n v e c t o r b id im e n s io n a l

f o r ( t ip o [ ] F ila : c o le c c ió n )
{
f o r ( t ip o c o lu m n a : F ila s )
{
B lo q u e d e in s t r u c c io n e s 1
}

}
C om o m e n c io n a m o s a n t e r io r m e n t e lo s v e c to re s b id im e n s io n a l son

v e c to re s d e v e c t o r e s , p o r lo que e l fo r-lo o p cuando e s tá it e r a n d o un v e c to r

b id im e n s io n a l e x t r a e es un v e c to r , e s to in d ic a que p a ra poder acceder a un

e le m e n t o d e l v e c t o r c o le c c io n a d o h a y q u e u t iliz a r u n d o b le b u c le .

A c o n t in u a c ió n d a re m o s un e je m p lo de v e c to re s u n id im e n s io n a le s y

b id im e n s io n a le s p a r a e x p lic a r c la r a m e n t e e l u s o d e l f o r - l o o p .

public cl ass Ej emplos DeForLo op {

publi c stat ic voi d main( String [] arg s) {

int [][] M atriz =


{

{1, 2 , 3},

{4, 5 , 6},
{7, 8 , 9}

};

Str ing[] Dias =

{
"Lun es","M artes", "Miérc oles",

"Jue ves"," Viernes ",

"Sáb ado"," Domingo "


} ;

for (Strin g dia : Dias)


Syste m.out. print(d ia + " ");

Sys tem.ou t.prin tln();

for (int[] Fila : Matri z)

for(in t colu mna : F ila)


{

Syst em.out .print( column a + " ");

S ystem. out.pr intln() ;


}

}//fi n del main


}// fin d e la c lase
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

C la s e s e n J a v a

C o m o s e v io e n u n p r in c ip io d e la g u í a , t o d o e n J a v a s o n c la s e s ( o b je t o s ) .

S i no se t ie n e n c la r o s lo s c o n c e p t o s b á s ic o s de la p r o g r a m a c ió n o r ie n t a d a a

o b je t o s , a n t e s d e s e g u ir a d e la n t e s e r í a m á s q u e a c o n s e ja b le v o lv e r la v is t a h a c ia

e l p u n t o d e p r o g r a m a c ió n o r ie n t a d a a o b je t o d e e s t a g u í a .

D esde un p u n to d e v is t a s im p lis t a , u n a c la s e e s u n c o n ju n t o de v a lo r e s

( a t r ib u t o s ) ju n t o c o n la s f u n c io n e s y p r o c e d im ie n t o s q u e o p e r a n s o b r e lo s m is m o s

(m é to d o s ), to d o e llo tra ta d o com o una e n t id a d . E s t a s c la s e s c o n s t it u y e n lo s

b lo q u e s p r in c ip a le s e n lo s c u a le s s e e n c u e n t r a c o n t e n id o e l c ó d ig o .

E n u n f ic h e r o f u e n t e p u e d e d e c la r a r s e u n a o m á s c la s e s :

c la s s C la s e 1

C u e r p o d e la c la s e

c la s s C la s e 2

C u e r p o d e la c la s e

c la s s C la s e N

C u e r p o d e la c la s e

E l c u e r p o d e la s c la s e s c o m ie n z a c o n u n a lla v e a b ie r t a “ { “ y t e r m in a c o n

u n a lla v e c e r r a d a “ } ” .

D e c la r a c ió n d e c la s e

C u e r p o d e c la s e

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

L a d e c la r a c ió n d e u n a c la s e d e f in e u n t ip o d e d a t o r e f e r e n c ia l.

D e n tro d e l c u e rp o d e la c la s e s e d e c la r a n lo s a t r ib u t o s d e la c la s e y lo s

m é to d o s .

D e c la r a c ió n d e c la s e .

L a d e c la r a c ió n m í n im a p a r a u n a c la s e e s la s ig u ie n t e :

c l a s s N o m b r e C la s e

U n a d e c la r a c ió n d e e s t e t ip o in d ic a q u e la c la s e n o d e s c ie n d e d e n in g u n a

o t r a , a u n q u e e n r e a lid a d , t o d a s la s c la s e s d e c la r a d a s e n u n p r o g r a m a e s c r it o e n

J a v a s o n d e s c e n d ie n t e s , d ir e c t a o in d ir e c t a m e n t e , d e la c la s e O b j e c t q u e e s la

r a í z d e t o d a la je r a r q u í a d e c la s e s e n J a v a .

class Obj etoSim pleCre ado {

String va riable ;
int enter o;

public Ob jetoSi mpleCr eado()

variab le = " Una va riable" ;


entero = 14;

public St ring o btnerS tring() {


return va riable ;

class Pri ncipal {

public st atic v oid ma in(Stri ng aru mentos []) {

ObjetoSim pleCre ado va rObj = new Ob jetoSi mpleCr eado();


System.ou t.prin tln(va rObj.to String ());

M u e s t r a e n p a n t a lla la s ig u ie n t e lí n e a d e t e x t o :

O b je t o S im p le C r e a d o @ 1 3 9 3 7 d 8

E n e s te c a s o , la c la s e O b je t o S im p le C r e a d o ha s id o d e c la r a d a com o no

d e s c e n d ie n t e de n in g u n a o tra c la s e , p e ro a pesar de e llo , h e re d a de la

s u p e r c la s e O b je c t ( ja v a . la n g . O b je c t ) to d o s sus m é to d o s , e n tre lo s que se

e n c u e n t r a n e l m é t o d o t o S t r in g ( ) q u e , e n e s t e c a s o , d e v u e lv e e l s ig u ie n t e v a lo r :

“ O b je t o S im p le C r e a d o @ 1 3 9 3 7 d 8 ” ( e l n o m b r e d e la c la s e ju n t o c o n e l p u n t e r o a l
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

o b je t o ) . E s t e m é to d o , q u e h e re d a n to d a s la s c la s e s que puedan d e c la r a r s e ,

d e b e r í a s e r r e d e f in id o p o r e l p r o g r a m a d o r p a r a m o s t r a r u n v a lo r m á s s ig n if ic a t iv o .

S i en lu g a r de la in s t r u c c ió n System.out.println(varObj.toString()); se

h u b ie r a u t iliz a d o la s ig u ie n t e : System.out.println(varObj.obtenerString()) la

s a lid a p o r p a n t a lla h a b r í a s id o : “ U n a V a r ia b le ”

D e c la ra c ió n d e la s u p e rc la s e (h e re n c ia ).

L a s u p e r c la s e e s la c la s e d e la c u a l h e r e d a o t r a c la s e t o d o s s u s a t r ib u t o s

y m é t o d o s . L a f o r m a d e d e c la r a r q u e u n a c la s e h e r e d a d e o t r a e s :

c la s s N o m b r e C la s e e x t e n d s N o m b r e S u p e r c la s e

E je m p lo : c l a s s O b r e r o e x t e n d s P e r s o n a

D e c la r a u n a c la s e O b r e r o q u e h e r e d a t o d o s lo s a t r ib u t o s y lo s m é t o d o s d e

la c la s e p e r s o n a .

L is ta d e in te rfa c e s

U na in t e r f a c e es un c o n ju n t o de c o n s ta n te s y m é to d o s , p e ro de é s to s

ú lt im o s ú n ic a m e n t e e l f o r m a t o , n o s u im p le m e n t a c ió n . C u a n d o u n a c la s e d e c la r a

u n a lis t a d e in t e r f a c e s , a s u m e q u e s e v a n a r e d e f in ir t o d o s lo s m é t o d o s d e f in id o s

en la in t e r f a c e . E s t a p o s ib ilid a d c o r r ig e e l in c o n v e n ie n t e de que, en Java, no

p u e d e n d e c la r a r s e c la s e s d e s c e n d ie n t e s d e m á s d e u n a s u p e r c la s e .

F o r m a d e s in t a x is

c la s s N o m b r e C la s e im p le m e n t s I n t e r f a c e 1 , I n t e r f a c e 2 , … , In te rfa c e N

P o r e je m p lo :

C la s s C ir c u lo e x t e n d s F ig u r a im p le m e n t s O p e r a c io n e s

E n la in t e r f a c e O p e r a c io n e s pueden e s ta r d e f in id o s , por e je m p lo , lo s

m é t o d o s A r e a ( ) , s u p e r f ic ie ( ) , e t c . M e d ia n t e e s t a d e c la r a c ió n , c o m p r o m e t o a la

c la s e C ir c u lo (m á s b ie n a su p ro g ra m a d o r) a r e d e f in ir lo s m é to d o s A re a (),

s u p e r f ic ie ( ) , e tc ., de lo c o n t r a r io el c o m p ila d o r m o s tra rá el c o r r e s p o n d ie n t e

m e n s a je d e e r r o r . L a s in t e r f a c e s s e e x p lic a r a n u n p o c o m á s d e la n t e d e la g u í a .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

M o d ific a d o re s d e c la s e

L o s m o d if ic a d o r e s d e c la s e s o n p a la b r a s r e s e r v a d a s q u e s e a n t e p o n e n a

la d e c la r a c ió n d e c la s e . L o s m o d if ic a d o r e s p o s ib le s s o n lo s s ig u ie n t e s :

 p u b lic .

 a b s tra c t.

 f in a l

L a s in t a x is g e n e r a l e s la s ig u ie n t e

M o d ific a d o r c la s s N o m b r e C la s e e x t e n d s N o m b r e S u p e r c la s e im p le m e n t s lis ta D e In te r fa c e s

S i no s e e s p e c if ic a n in g ú n m o d if ic a d o r d e c la s e , la c la s e s e r á v is ib le en

t o d a s la s d e c la r a d a s e n e l m is m o p a q u e t e . S i n o s e e s p e c if ic a n in g ú n p a q u e t e ,

s e c o n s id e r a q u e la c la s e p e r t e n e c e a u n p a q u e t e p o r d e f e c t o a l c u a l p e r t e n e c e n

t o d a s la s c la s e s q u e n o d e c la r a n e x p lí c it a m e n t e e l p a q u e t e a l q u e p e r t e n e c e n .

M o d ific a d o r p u b lic

C uando se c re a n v a r ia s c la s e s que se a g ru p a n fo rm a n d o un p a q u e te

( p a c k a g e ) , ú n ic a m e n t e la s c la s e s d e c la r a d a s p u b lic p u e d e n s e r a c c e d id a s d e s d e

o tro p a q u e te .

T o d a c la s e p u b lic d e b e s e r d e c la r a d a e n u n f ic h e r o f u e n t e c o n e l n o m b r e

d e e s a c la s e p ú b lic a : N o m b r e C la s e . ja v a . D e e s t a a f ir m a c ió n s e d e d u c e q u e e n

un f ic h e r o fu e n te puede haber m ás de una c la s e , p e ro s ó lo una con el

m o d if ic a d o r p u b lic .

M o d ific a d o r a b s tra c t

L a s c la s e s a b s t r a c t a s n o p u e d e n s e r in s t a n c ia d a s 1 7 . S ir v e n ú n ic a m e n t e

p a ra d e c la r a r s u b c la s e s que deben r e d e f in ir a q u e llo s m é to d o s que han s id o

d e c la r a d o s a b s t r a c t . E s t o n o q u ie r e d e c ir q u e t o d o s lo s m é t o d o s d e u n a c la s e

a b s t r a c t a d e b a n s e r a b s t r a c t o s , in c lu s o e s p o s ib le q u e n in g u n o d e e llo s lo s e a .

A ú n e n e s t e ú lt im o c a s o , la c la s e s e r á c o n s id e r a d a c o m o a b s t r a c t a y n o p o d r á n

d e c la r a r s e o b je t o s d e e s t a c la s e .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

C u a n d o a lg u n o de lo s m é t o d o s d e una c la s e e s d e c la r a d o a b s t r a c t o , la

c la s e d e b e s e r o b lig a t o r ia m e n t e a b s t r a c t a , d e lo c o n t r a r io , e l c o m p ila d o r g e n e r a

u n m e n s a je d e e r r o r .

Ejemplo:

abstract class Animal


{

Strin g Nomb re;

Int P atas;
public An imal(S tring n, Stri ng p)

Nombre = n;

Patas = p ;
}

abstract boolea n Vuel a();

//Mé todo ab stract o que debe s er rede finido por l as sub clases

class Per ro ext ends A nimal


{

Strin g Raza ;

publi c Perr o(Stri ng n, i nt p, String r) {


s uper(n , p);

R aza = r;

@Over ride

boole an Vu ela() {

r eturn false;
}

class Eje mploDe ClaseA bstract a

public st atic v oid ma in(Stri ng arg s[])


{

Perro toby = new P erro(“t oby”, 4, ”Sa n Bern ardo”)

}
}

L a s c la s e s a b s t r a c t a s s e c r e a n p a r a s e r s u p e r c la s e s d e o t r a s c la s e s . E n

e s t e e je m p lo , s e h a d e c la r a d o e l m é t o d o b o o le a n V u e la ( ) c o m o a b s t r a c t o p o r q u e

q u e r e m o s q u e s e p u e d a s a b e r s i e l a n im a l v u e la o n o , p o r lo q u e e s d e c la r a d a

de t ip o a b s tra c t. Las c la s e s que h e re d a n de A n im a l deben im p le m e n t a r un

m é t o d o b o o le a n V u e la ( ) p a r a p o d e r h e r e d a r la s c a r a c t e r í s t ic a s d e A n im a l.
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

M o d ific a d o r F in a l

U na c la s e d e c la r a d a f in a l im p id e que pueda ser s u p e r c la s e de o tra s

c la s e s . D ic h o d e o t r a f o r m a , n in g u n a c la s e p u e d e h e r e d a r d e u n a c la s e f in a l.

E s t o e s im p o r t a n t e c u a n d o s e c r e a n c la s e s q u e a c c e d e n a re c u rs o s d e l

s is t e m a o p e r a t iv o o r e a liz a n o p e r a c io n e s d e s e g u r id a d en e l s is t e m a . S i e s ta s

c la s e s n o s e d e c la r a n c o m o f in a l, c u a lq u ie r a p o d r í a r e d e f in ir la s y a p r o v e c h a r s e

p a ra r e a liz a r o p e r a c io n e s s ó lo p e r m it id a s a d ic h a s c la s e s p e ro con nuevas

in t e n c io n e s , p o s ib le m e n t e o s c u r a s .

A d if e r e n c ia d e l m o d if ic a d o r a b s t r a c t , p u e d e n e x is t ir e n la c la s e m é t o d o s

f in a l s in que la c la s e que lo s c o n t ie n e sea f in a l ( s ó lo se p ro te g e n a lg u n o s

m é t o d o s d e la c la s e q u e n o p u e d e n s e r r e d e f in id o s ) .

U n a c la s e n o p u e d e s e r a la v e z a b s t r a c t y f in a l y a q u e n o t ie n e s e n t id o ,

p e r o s í q u e p u e d e s e r p u b lic a b s t r a c t o p u b lic f in a l

E l C u e rp o d e la c la s e

U n a v e z d e c la r a d a la c la s e , s e d e c la r a n lo s a t r ib u t o s y lo s m é t o d o s d e la

m is m a d e n t r o d e l c u e r p o .

D e c la r a c ió n d e c la s e

D e c la r a c ió n d e a t r ib u t o s

D e c la r a c ió n d e c la s e s a n ó n im a s

D e c la r a c ió n d e C o n s t r u c t o r e s

D e c la r a c ió n d e M é t o d o s

La d e c la r a c ió n de c la s e s a n ó n im a s ( t a m b ié n c o n o c id a s com o c la s e s

a n id a d a s o in t e r io r e s ) n o e s im p r e s c in d ib le p a r a p r o g r a m a r e n J a v a .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

D e c la ra c ió n d e a trib u to s

L o s a t r ib u t o s s ir v e n , e n p r in c ip io , p a r a a lm a c e n a r v a lo r e s d e lo s o b je t o s

q u e s e in s t a n c ia n a p a r t ir d e u n a c la s e .

L a s in t a x is g e n e r a l e s la s ig u ie n t e :

 [ m o d if ic a d o r D e Á m b it o ] [ s t a t ic ] [ f in a l] [ t r a n s ie n t ] [ v o la t ile ] t ip o

n o m b r e A t r ib u t o

E x is t e n d o s t ip o s g e n e r a le s d e a t r ib u t o s :

 A t r ib u t o s d e O b je t o s .

 A t r ib u t o s d e C la s e s ( s t a t i c ) .

L o s a t r ib u t o s d e o b je t o s s o n v a r ia b le s u o b je t o s q u e a lm a c e n a n v a lo r e s

d is t in t o s p a r a in s t a n c ia s d is t in t a s d e la c la s e ( p a r a o b je t o s d is t in t o s ) .

L o s a t r ib u t o s d e c la s e s o n v a r ia b le s u o b je t o s q u e a lm a c e n a n e l m is m o

v a lo r p a r a t o d o s lo s o b je t o s in s t a n c ia d o s a p a r t ir d e e s a c la s e .

D ic h o d e o t r a f o r m a : m ie n t r a s q u e a p a r t ir d e u n a t r ib u t o d e o b je t o s e c r e a n

t a n t a s c o p ia s d e e s e a t r ib u t o c o m o o b je t o s s e in s t a n c ie n , a p a r t ir d e u n a t r ib u t o

d e c la s e s ó lo s e c r e a u n a c o p ia d e e s e a t r ib u t o q u e s e r á c o m p a r t id o p o r t o d o s

lo s o b je t o s q u e s e in s t a n c ie n .

S i n o s e e s p e c if ic a lo c o n t r a r io , lo s a t r ib u t o s s o n d e o b je t o y n o d e c la s e .

P a r a d e c la r a r u n a t r ib u t o d e c la s e s e u t iliz a la p a la b r a r e s e r v a d a s t a t i c .

L a d e c la r a c ió n m í n im a d e lo s a t r ib u t o s e s : t ip o n o m b r e A t r ib u t o

class Pun to

int x, y;

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

A trib u to s s ta tic

M e d ia n t e la p a la b r a r e s e r v a d a s t a t ic s e d e c la r a n a t r ib u t o s d e c la s e

class Per sona

static i nt num Person as=0; / / atri buto d e clas e


String n ombre; // at ributo de obj eto

public P ersona (Stri ng n)

nombre = n;
numPer sonas+ +;

public vo id mue stra() {


S ystem. out.pri nt("So y "+no mbre);

System .out.p rintln (" pero hay " + (numP ersona s - 1) + " pe rsonas

más.");

}
}

Class Eje mploDe Atribu tos

Person a p1 = new P ersona( “Pedro ”);


Person a p2 = new P ersona( “Pablo ”);

Person a p3 = new P ersona( “Juan” );

p1.mue stra() ;
p3.mue stra() ;

S a lid a p o r P a n t a lla :

Soy Pedro hay 2 perso na más

Soy Juan hay 2 person a más

E n e s te caso, n u m P erso n as es un a t r ib u t o de c la s e y p o r lo ta n to es

c o m p a r t id o p o r to d o s lo s o b je t o s que se c re a n a p a r t ir d e la c la s e P erso n a .

T o d o s lo s o b je t o s d e e s t a c la s e p u e d e n a c c e d e r a l m is m o a t r ib u t o y m a n ip u la r lo .

E l a t r ib u t o n o m b r e e s u n a t r ib u t o d e o b je t o y se c r e a n t a n t a s in s t a n c ia s c o m o

o b je t o s s e d e c la r e n d e l t ip o P e r s o n a . C a d a v a r ia b le d e c la r a d a d e t ip o P e r s o n a

t ie n e u n a t r ib u t o n o m b re y cada o b je t o puede m a n ip u la r s u p r o p io a t r ib u t o de

o b je t o .

E n e l e je m p lo , s e c r e a u n a t r ib u t o n u m P e r s o n a s y t r e s a t r ib u t o s n o m b r e

( t a n t o s c o m o o b je t o s d e t ip o P e r s o n a ) .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

A trib u to s fin a l

L a p a la b r a r e s e r v a d a f in a l c a lif ic a n d o a un a t r ib u t o o v a r ia b le s ir v e p a ra

d e c la r a r c o n s t a n t e s , n o se p e r m it e la m o d if ic a c ió n de su v a lo r . S i a d e m á s es

s t a t ic , s e p u e d e a c c e d e r a d ic h a c o n s t a n t e s im p le m e n t e a n t e p o n ie n d o e l n o m b r e

d e la c la s e , s in n e c e s id a d d e in s t a n c ia r la c r e a n d o u n o b je t o d e la m is m a .

E l v a lo r d e u n a t r ib u t o f in a l d e b e s e r a s ig n a d o e n la d e c la r a c ió n d e l m is m o .

C u a lq u ie r in t e n t o d e m o d if ic a r s u v a lo r g e n e r a r á e l c o n s ig u ie n t e e r r o r p o r p a r t e

d e l c o m p ila d o r .

class Cir culo {

fi nal do uble P I=3.141 59265;


in t radi o;

Ci rculo( int r) {

ra dio=r;

}
p ublic double area() {

retu rn PI*r adio*r adio;

}
}

class Fin al {

pu blic s tatic void ma in(Str ing ar gument os[]) {


Cir culo c = new Circul o(15);

Sy stem.o ut.prin tln(c. area() );

}
}

A trib u to s tra n s ie n t

L o s a t r ib u t o s d e u n o b je t o s e c o n s id e r a n , p o r d e f e c t o , p e r s is t e n t e s . E s t o

s ig n if ic a que a la h o ra d e , p o r e je m p lo , a lm a c e n a r o b je t o s en un f ic h e r o , lo s

v a lo r e s d e d ic h o s a t r ib u t o s d e b e n t a m b ié n a lm a c e n a r s e .

A q u e llo s a t r ib u t o s q u e n o f o r m a n p a r t e d e l e s t a d o p e r s is t e n t e d e l o b je t o

p o r q u e a lm a c e n a n e s t a d o s t r a n s it o r io s o p u n t u a le s d e l o b je t o , s e d e c la r a n c o m o

t r a n s i e n t ( p o d e m o s d e n o m in a r lo s t r a n s it o r io s ) .

A c o n t in u a c ió n u n e je m p lo
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

class Tra nsient {


int var1, var2;

transient int n umVece sModifi cado=0 ;

void modi fica(i nt v1, int v2 ) {


var1=v1;

var2=v2;

numVecesM odific ado++;

}
}

E n e s te c a s o , la v a r ia b le n u m V e c e s M o d if ic a d o a lm a c e n a e l n ú m e ro de

v e c e s q u e s e m o d if ic a e n e l o b je t o lo s v a lo r e s d e lo s a t r ib u t o s v a r 1 y v a r 2 . A la

h o r a d e a lm a c e n a r e l o b je t o e n u n f ic h e r o p a r a s u p o s t e r io r r e c u p e r a c ió n p u e d e

q u e n o in t e r e s e e l n ú m e r o d e v e c e s q u e h a s id o m o d if ic a d o . D e c la r a n d o d ic h o

a t r ib u t o com o t r a n s ie n t e s te v a lo r no se a lm a c e n a r á y s e rá r e in ic ia liz a d o al

r e c u p e r a r lo .

A trib u to s v o la tile

S i una c la s e c o n t ie n e a t r ib u t o s de o b je t o que son m o d if ic a d o s

a s ín c ro n a m e n te p o r d is t in t o s th re a d s que se e je c u t a n c o n c u rre n te m e n te , se

pueden u t iliz a r a t r ib u t o s v o la tile p a ra in d ic a r le a la m á q u in a v ir t u a l J a v a e s te

hecho, y a s í c a rg a r e l a t r ib u t o desde m e m o r ia a n te s de u t iliz a r lo y v o lv e r a

a lm a c e n a r lo e n m e m o r ia d e s p u é s , p a ra que cada th re a d puede “ v e r lo ” e n un

e s t a d o c o h e r e n t e . E s t o n o s a y u d a r á a m a n t e n e r la c o h e r e n c ia d e la s v a r ia b le s

q u e p u e d a n s e r u t iliz a d a s c o n c u r r e n t e m e n t e .

L o s a t r ib u t o s v o l a t i l e s o n ig n o r a d o s p o r la v e r s ió n 1 . 0 d e l c o m p ila d o r d e l

JD K .

N o o b s ta n te , p a ra p o d e r c o m p re n d e r e n su t o t a lid a d e l s e n t id o de e s te

t ip o de a t r ib u t o s , e s n e c e s a r io que e s p e re m o s a conocer qué son y cóm o se

e m p le a n lo s t h r e a d s q u e n o e s t á c o n t e m p l a d o e n e s t a g u í a .

M o d ific a d o re s d e á m b ito d e a trib u to s

Los m o d if ic a d o r e s de acceso nos in t r o d u c e n al c o n c e p to de

e n c a p s u la m ie n t o . E l e n c a p s u la m ie n t o b u s c a d e a lg u n a f o r m a c o n t r o la r e l a c c e s o

a lo s d a t o s q u e c o n f o r m a n u n o b je t o o in s t a n c ia , d e e s t e m o d o p o d r í a m o s d e c ir
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

q u e u n a c la s e y p o r e n d e s u s o b je t o s q u e h a c e n u s o d e m o d i f ic a d o r e s d e a c c e s o

( e s p e c ia lm e n t e p r iv a d o s ) s o n o b je t o s e n c a p s u la d o s .

L o s m o d if ic a d o r e s d e a c c e s o p e r m it e n d a r u n n iv e l d e s e g u r id a d m a y o r a

n u e s t r a s a p lic a c io n e s r e s t r in g ie n d o el acceso a d if e r e n t e s a t r ib u t o s , m é t o d o s ,

c o n s t r u c t o r e s a s e g u r á n d o n o s q u e e l u s u a r io d e b a s e g u ir u n a " r u t a " e s p e c if ic a d a

p o r n o s o t r o s p a r a a c c e d e r a la in f o r m a c ió n .

E s m u y p o s ib le q u e n u e s t r a s a p lic a c io n e s v a y a n a s e r u s a d a s p o r o t r o s

p r o g r a m a d o r e s o u s u a r io s c o n c ie r t o n iv e l d e e x p e r ie n c ia ; h a c ie n d o u s o d e lo s

m o d if ic a d o r e s de acceso p o d re m o s a s e g u ra rn o s de que un v a lo r no s e rá

m o d if ic a d o in c o r r e c t a m e n t e por p a rte de o tro p ro g ra m a d o r o u s u a r io .

G e n e r a lm e n t e e l a c c e s o a lo s a t r ib u t o s s e c o n s ig u e p o r m e d io d e lo s m é t o d o s

g e t y s e t , p u e s e s e s t r ic t a m e n t e n e c e s a r io q u e lo s a t r ib u t o s d e u n a c la s e s e a n

p r iv a d o s .

N o ta : S ie m p r e se r e c o m ie n d a que lo s a t r ib u t o s de una c la s e sean

p r iv a d o s y p o r t a n t o c a d a a t r ib u t o d e b e t e n e r s u s p r o p io s m é t o d o s g e t y s e t p a r a

o b t e n e r y e s t a b le c e r r e s p e c t iv a m e n t e e l v a lo r d e l a t r ib u t o .

N o t a 2 : S ie m p r e q u e s e u s e u n a c la s e d e o t r o p a q u e t e , s e d e b e im p o r t a r

u s a n d o i m p o r t . C u a n d o d o s c la s e s s e e n c u e n t r a n e n e l m is m o p a q u e t e n o es

n e c e s a r io h a c e r e l i m p o r t p e r o e s to n o s ig n if ic a que se pueda acceder a sus

c o m p o n e n t e s d ir e c t a m e n t e .

V e a m o s u n p o c o e n d e t a lle c a d a u n o d e lo s m o d if ic a d o r e s d e a c c e s o

P r i v a t e ( A c c e s o s o lo d e n t r o d e la c la s e ) : E l m o d if ic a d o r p r i v a t e e n J a v a

e s e l m á s r e s t r ic t iv o d e t o d o s , b á s ic a m e n t e c u a lq u ie r e le m e n t o d e u n a c la s e q u e

sea p r iv a d o puede s e r a c c e d id o “ ú n ic a m e n te ” p o r la m is m a c la s e por nada

m á s . E s d e c ir , s i p o r e je m p lo , u n a t r ib u t o e s p r iv a d o s o lo p u e d e s e r a c c e d id o p o r

lo m é t o d o s o c o n s t r u c t o r e s d e la m is m a c la s e . N in g u n a o t r a c la s e s in im p o r t a r la

r e la c ió n q u e t e n g a n p o d r á t e n e r a c c e s o a e llo s .

V a c í o ( S in e s c r ib ir n a d a , d e n o m in a d o a c c e s o d e p a q u e t e ) : J a v a n o s d a la

o p c ió n d e n o u s a r u n m o d if ic a d o r d e a c c e s o y a l n o h a c e r lo , e l e le m e n t o t e n d r á

u n a c c e s o c o n o c id o c o m o d e f a u l t o a c c e s o p o r d e f e c t o q u e p e r m it e q u e t a n t o la

p r o p ia c la s e c o m o la s c la s e s d e l m is m o p a q u e t e a c c e d a n a d ic h o s c o m p o n e n t e s

( d e a q u í la im p o r t a n c ia d e d e c la r a r le s ie m p r e u n p a q u e t e a n u e s t r a s c la s e s ) .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

P r o t e c t e d ( A c c e s o d e s d e la c la s e y s u s h ijo s " h e r e n c ia " ) : E l m o d if ic a d o r d e

a c c e s o p r o t e c t e d n o s p e r m it e a c c e s o a lo s c o m p o n e n t e s c o n d ic h o m o d if ic a d o r

d e s d e la m is m a c la s e , c la s e s d e l m is m o p a q u e t e y c la s e s q u e h e r e d e n d e e lla

( in c lu s o e n d if e r e n t e s p a q u e t e s ) .

P u b l i c ( A c c e s o p ú b lic o d e s d e c u a lq u ie r lu g a r ) : E l m o d if ic a d o r d e a c c e s o

p u b l i c e s e l m á s p e r m is iv o d e t o d o s , b á s ic a m e n t e p u b l i c e s lo c o n t r a r io a p r i v a t e

e n t o d o s lo s a s p e c t o s ( ló g ic a m e n t e ) , e s t o q u ie r e d e c ir q u e s i u n c o m p o n e n te d e u n a

c la s e es p u b lic , te n d re m o s acceso a él desde c u a lq u ie r c la s e o in s t a n c ia s in

im p o r t a r e l p a q u e t e o p r o c e d e n c ia d e é s t a .

A c o n t in u a c ió n y y a p a r a f in a liz a r , p o n d r é u n a p e q u e ñ a t a b la q u e r e s u m e

e l f u n c io n a m ie n t o d e lo s m o d if ic a d o r e s d e a c c e s o e n J a v a .

M o d ific a d o r L a m is m a M is m o S u b c la s e O tro

c la s e p aq u ete p aq u ete

p riv a te S í N o N o N o

d e fa u lt S í S í N o N o

p ro te c te d S í S í S í/N o N o

p u b lic S í S í S í S í

E s im p o r t a n t e m e n c io n a r q u e e l m o d if ic a d o r d e a c c e s o p r o t e c t e d e s u n

e rro r c o m ú n pensar que se puede c re a r u n o b je t o de la c la s e p a d re y lu e g o

a c c e d e r a l a t r ib u t o c o n a c c e s o p r o t e c t e d s in p r o b le m a s c o m o q u e f u e s e p ú b lic o ,

s in e m b a r g o e s t o n o e s c ie r t o , p u e s t o q u e e l m o d if ic a d o r p r o t e c t e d lo q u e n o s

p e r m it e e s a c c e d e r a l a t r ib u t o h e re d a d o desde e l á m b it o de la c la s e h ija y no

d ir e c t a m e n t e .

U s o d e M é to d o s

L o s m é t o d o s s e u t iliz a n p a r a e s t r u c t u r a r u n p r o g r a m a J a v a d e f o r m a ló g ic a

E l uso de m é to d o s p e r m it e d iv id ir un p r o b le m a en p r o b le m a s m ás

p e q u e ñ o s q u e s o n m á s f á c ile s d e r e s o lv e r ( d iv id e y v e n c e r á s ) .

Los m é to d o s e n c a p s u la n un c o n ju n t o de in s t r u c c io n e s que se puede

e je c u t a r t a n t a s v e c e s c o m o s e a n e c e s a r io . E l c ó d ig o d e l m é t o d o q u e d a o c u lt o y

s ó lo e s n e c e s a r io c o n o c e r s u in t e r f a z ( p a r á m e t r o s y v a lo r d e r e t o r n o ) .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

U n m é t o d o lle v a a c a b o u n a t a r e a e s p e c í f ic a d e d iv e r s a n a t u r a le z a : in p u t ,

o u t p u t o c á lc u lo .

P a r a c r e a r u n m é t o d o s e t ie n e q u e e s c r ib ir la d e c la r a c ió n d e l m é t o d o , e l

encabezado y el c u e rp o . D e n tro del c u e rp o puede haber d e c la r a c io n e s de

v a r ia b le s y c o n s t a n t e s . S i la s hay se conocen com o v a r ia b le s de á m b it o de

m é t o d o y s o lo p u e d e n s e r u t iliz a d a s d e n t r o d e l m é t o d o , e s d e c ir , la v id a de la

v a r ia b le e s m ie n t r a s s e e je c u t e e l m é t o d o lu e g o e s lib e r a d a o m u e r e .

E x is te n tre s tip o s d e m é to d o s :

 M é t o d o s d e I n s t a n c ia .

 M é t o d o s d e C la s e o e s t á t ic o s ( s t a t i c )

 M é to d o s A b s tra c to s

D e c la ra c ió n d e M é to d o s

public void Impri mir(St ring v ariabl e)

Sys tem.ou t.prin tln(var iable) ;

P u b l i c : M o d if ic a d o r d e a c c e s o

V o i d : t ip o d e v a lo r d e r e t o r n o

Im p rim ir : N o m b re d e l M é to d o

S t r i n g v a r i a b l e : L is t a d e P a r á m e t r o s

M o d ific a d o re s

L o s m o d if ic a d o r e s d e á m b it o d e lo s m é t o d o s s o n e x a c t a m e n t e ig u a le s <

lo s d e lo s a t r ib u t o s , e s p e c if ic a n la f o r m a e n q u e p u e d e a c c e d e r s e a lo s m is m o s

d e s d e o t r a s c la s e s .

T ip o d e l v a lo r d e re to rn o (R e tu rn ty p e )

in t , lo n g , d o u b lé , S t r in g o c u a lq u ie r o t r o t ip o de d a to p a ra m é to d o s q u e

d e v u e lv e n v a lo r e s , v o id s i e l m é t o d o n o d e v u e lv e u n v a lo r
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

N o m b re d e l m é to d o

D e b e s e r u n n o m b r e d e s c r ip t iv o d e la t a r e a q u e r e a liz a e l m é t o d o

L is ta d e p a rá m e tro s

L a lis t a d e p a r á m e t r o s e s o p c io n a l. C o n t ie n e la d e c la r a c ió n d e p a r á m e t r o s

( v a r ia b le s ) q u e p e r m it e n a l m é t o d o r e c ib ir d a t o s d e l e x t e r io r

E je c u c ió n de m é to d o s , un m é to d o se e je c u t a cuando es in v o c a d o o

lla m a d o . E l m é t o d o m a in s e e je c u t a a u t o m á t ic a m e n t e a l c o m e n z a r la e je c u c ió n

d e u n p ro g ra m a .

P a r a e je c u t a r u n m é t o d o b a s t a in d ic a r e l n o m b r e d e l m é t o d o y la lis t a d e

p a rá m e tro s . L o s v a lo r e s que se pasan a un m é to d o cuando es in v o c a d o se

d e n o m in a n a r g u m e n t o s

P a ra in v o c a r u n m é to d o que t ie n e en su lis t a de p a rá m e tro s un v a lo r

e n t e r o s e d e b e p a s a r u n a c o n s t a n t e e n t e r a , u n a v a r ia b le e n t e r a o u n a e x p r e s ió n

d e t ip o e n t e r o .

L o s m é to d o s pueden ser de dos t ip o s : m é t o d o s s in v a lo r d e re to rn o o

m é t o d o s c o n v a lo r d e r e t o r n o . L o s m é t o d o s s in v a lo r d e r e t o r n o s e d e c la r a n c o n

e l v a lo r d e r e t o r n o v o id . E l m é t o d o m a in n o r e t o r n a v a lo r p o r lo q u e s u r e t o r n o e s

v o id . Los m é to d o s con v a lo r de re to rn o se d e c la r a n con el t ip o de d a to

c o r r e s p o n d ie n t e : in t , c h a r, lo n g , d o u b le , S t r in g o c u a lq u ie r o tro t ip o . E s to s

m é to d o s u t iliz a n la in s t r u c c ió n re tu rn p a ra f in a liz a r la e je c u c ió n d e l m é to d o ,

d e v o lv e r e l v a lo r y e l c o n t r o l d e l p r o g r a m a a l p u n t o d o n d e s e r e a liz ó la lla m a d a

E je m p lo

public in t suma (int n um1, in t num2 )

ret urn (n um1 + num2);

E n e l e je m p lo a n t e r io r p o d e m o s v e r u n m é t o d o q u e r e c ib e d o s e n t e r o s y re to rn a

la s u m a d e lo s m is m o s .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

P a rá m e tro s y a rg u m e n to s

E l t ip o del a rg u m e n to que se pasa a un m é to d o al in v o c a r lo t ie n e que


c o rre s p o n d e r c o n e l t ip o d e l p a rá m e tro en la d e c la r a c ió n . L a c o r r e s p o n d e n c ia

e n tre a rg u m e n to s y p a rá m e tro s e s u n o a uno según e l o rd e n . A c o n t in u a c ió n

e je m p lo d e m é t o d o s c o n y s in p a r á m e t r o s

Import ja va.uti l.Scan ner;

public cl ass Ej emploD eMetoso


{

public st atic int su ma(int num1, int nu m2)

{
ret urn (n um1 + num2);

public st atic i nt lee rNumero () {

Scanner t eclado = new Scanne r(Syst em.in) ;

System.ou t.prin tl(″In troduzc a un n umero: ″ );

Int x = t eclado .nextI nt();


return x;

public st atic v oid ma in(Stri ng arg s[] )


{

int x, y;

x = leerN umero( );

y = leerN umero( );
System.ou t.prin tln(″L asuma e s:″ + suma(x , y));

E s im p o r t a n t e m e n c io n a r q u e p a r a u s a r la c la s e S c a n n e r s e d e b e im p o r t a r

d e la lib r e r í a ú t il y lo s m é t o d o s lle r N u m e r o y s u m a s o n s t a t ic y a q u e e s lla m a d o

d e m é t o d o m a in e l c u a l e s s t a t ic .

L o s a r g u m e n t o s q u e s e p a s a n a u n m é t o d o d e b e n s e r c o m p a t ib le s c o n l a

e l t ip o d e d a t o d e l p a r á m e t r o

E l t ip o de d a to d e la v a r ia b le donde se r e c ib e e l v a lo r d e re to rn o de un

m é t o d o d e b e c o r r e s p o n d e r c o n e l t ip o d e d a t o d e r e t o r n o d e l m é t o d o

J a v a h a c e c o n v e r s io n e s a u t o m á t ic a s s i e l a r g u m e n t o e s m e n o r e n t a m a ñ o

q u e e l p a r á m e t r o ( w id e n in g ) p e r o n o a l r e v é s ( n a r r o w in g )

M é to d o s d e in s ta n c ia :

L o s m é t o d o s d e in s t a n c ia , c o m o s u n o m b r e lo in d ic a , s o n a p lic a b le s a u n a

in s t a n c ia d e la c la s e e n p a r t ic u la r . E s d e c ir , q u e u n m é t o d o d e in s t a n c ia t r a b a ja

s o b r e e l e s t a d o a c t u a l d e la in s t a n c ia , y p a r a c a d a in s t a n c ia t e n d r á n u n r e s u lt a d o

d is t in t o .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E je m p lo :

public cl ass Pe rsona

pu blic v oid co mer ()


{

Syst em.out. printl n("Per sona C omiendo …");

public st atic v oid ma in(Stri ng arg s[] )

{
Persona p = new Perso na();

p.comer() ;

E n e l e je m p lo a n t e r io r v e m o s u n m é t o d o q u e p a r a p o d e r u t iliz a r lo s e t ie n e

q u e c r e a r u n o b je t o d e t ip o p e r s o n a c o m o s e h iz o e n e l m é t o d o m a in .

M é to d o s d e C la s e o e s tá tic o s (s ta tic )

Los m é to d o s de c la s e son un c o m p o r t a m ie n t o com ún a to d a s la s

in s t a n c ia s q u e p e r t e n e c e n a la m is m a c la s e . A l s e r u n m é t o d o d e c la s e , n o h a c e

f a lt a in s t a n c ia r u n o b je t o d e la c la s e p a r a u t iliz a r lo . E s t o s m é t o d o s n o h a b la n d e l

e s t a d o a c t u a l d e la c la s e , s in o s o lo d e u n c o m p o r t a m ie n t o g e n é r ic o d e la c la s e ,

d e u n p r o c e d im ie n t o q u e s o lo u t iliz a lo s p a r á m e t r o s d e e n t r a d a o la s v a r ia b le s

e s t á t ic a s .

E je m p lo :

public cl ass Pe rsona


{

pu blic s tatic void s aludar (Strin g mens aje)

Syst em.out. printl n(mens aje);


}

public st atic v oid ma in(Stri ng arg s[] )

Persona.s aludar (“Hola ”)

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

P odem os en e l e je m p lo a n t e r io r q u e p a ra usar un m é to d o de c la s e o

e s t á t ic o b a s t a c o n e l n o m b r e d e la c la s e y e l n o m b r e d e l m é t o d o , lo q u e q u ie r e

d e c ir q u e n o e s n e c e s a r i o c r e a r u n o b je t o d e la c la s e p a r a u s a r e l m is m o .

M é to d o s a b s tra c t

L o s m é t o d o s a b s t r a c t s e d e c la r a n e n la s c la s e s a b s t r a c t . E s d e c ir , s i s e

d e c la r a a lg ú n m é t o d o d e e s t e t ip o la c la s e d e b e d e c la r a r s e o b lig a t o r ia m e n t e de

la m is m a f o r m a . E s t a c la s e n o p u e d e s e r in s t a n c ia d a , ú n ic a m e n t e s ir v e p a r a s e r

u t iliz a d a c o m o s u p e r c la s e d e o t r a s c la s e s .

C u a n d o s e d e c la r a u n m é t o d o a b s t r a c t , n o s e im p le m e n t a e l c u e r p o d e l

m é t o d o , s ó lo s u s ig n a t u r a . L a s c la s e s q u e s e d e c la r a n c o m o s u b c la s e s d e b e n

im p le m e n t a r lo s .

L o s m é to d o s a b s tra c to s s e e s c r ib e n s in lla v e s { } y c o n “ ; ” a l f in a l d e la

d e c la r a c ió n .

P o r e je m p lo :

p u b lic a b s t r a c t a r e a ( ) ;

L a f o r m a g e n e r a l d e d e c la r a r u n m é t o d o a b s t r a c t o e n J a v a e s :

[ m o d if ic a d o r ] a b s t r a c t t ip o D e v u e lt o n o m b r e M e t o d o ( [ p a r á m e t r o s ] ) ;

E je m p lo :

/**

* Clase Abstra cta In strumen to

*/
pubic abs tract class Instrum ento

protected Strin g tipo ;

public ab stract void tocar() ;

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

/**

* Clase Concre ta Gui tarra, hija d e Inst rument o

*/
public c lass G uitarr a exten ds Ins trumen to

public Gu itarra ()
{

tipo = "G uitarr a";

}
@Ove rride

public vo id toc ar()

{
System.ou t.prin tln("T ocar La Guita rra");

public st atic v oid ma in(Stri ng arg s[] )

Guitarra g1 = n ew Gui tarra() ; // f orma 1


Instrumen to g2 = new Guitarr a(); / / form a 2

C o m o s e p u e d e v e r la c la s e s c o n c r e t a s im p le m e n t a n e l m é t o d o t o c a r ( ) y

le d a n la f u n c io n a lid a d d e p e n d ie n d o d e c ó m o s e t o q u e e l in s t r u m e n t o , t a m b ié n

e n e l c o n s t r u c t o r d e la s c la s e s d e f in im o s e l t ip o , p e r o s i n o s f ija m o s b ie n e n la s

c la s e s c o n c r e t a s n o t e n e m o s la v a r ia b le t ip o d e c la r a d a , p u e s e s t a m o s u s a n d o la

v a r ia b le h e r e d a d a d e la c la s e I n s t r u m e n t o .

E n e l m é t o d o m a i n s e d e c la r a r o n d o s v a r ia b le s g 1 y g 2 d e t ip o g u it a r r a

p e r o d e f o r m a d if e r e n t e , c o m o I n s t r u m e n t o e s u n a c la s e a b s t r a c t a n o s e p u e d e

in s t a n c ia r , a s í q u e a pesar de d e c la r e u n o b je t o de ese t ip o se in s t a n c ia la

s u b c la s e d e I n s t r u m e n t o e n e l e je m p lo G u it a r r a .

C o n s tru c to re s

U n c o n s tru c to r es un m é to d o e s p e c ia l de la s c la s e s que s ir v e p a ra

in ic ia liz a r lo s d a to s o p r o p ie d a d e s que se in s t a n c ia n com o m ie m b r o s de una

c la s e . P a r a d e c la r a r u n c o n s t r u c t o r b a s t a c o n d e c la r a r u n m é t o d o c o n e l m is m o

n o m b r e q u e la c la s e . N o s e d e c la r a e l t ip o d e v u e lt o p o r e l c o n s t r u c t o r ( n i s iq u ie r a

v o id ) , a u n q u e s í s e p u e d e n u t iliz a r lo s m o d if ic a d o r e s d e á m b it o d e lo s m é t o d o s :

p u b lic , p r o t e c t e d , p r iv a t e .
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

L o s c o n s t r u c t o r e s t ie n e n e l m is m o n o m b r e q u e la c la s e y t o d a s la s c la s e s

t ie n e n uno por d e fe c to (q u e no es n e c e s a r io d e c la r a r ) , aunque es p o s ib le

s o b r e s c r ib ir lo e in c lu s o d e c la r a r d is t in t o s c o n s t r u c t o r e s ( s o b r e c a r g a d e m é t o d o s )

a l ig u a l q u e lo s d e m á s m é t o d o s d e u n a c la s e .

C o n s tru c to re s d e S u b c la s e s

P a r a q u e e l c o n s t r u c t o r d e la s u b c la s e p u e d a in v o c a r a l c o n s t r u c t o r d e la

s u p e r c la s e se in c lu y e o b lig a t o r ia m e n t e , la p a la b r a c la v e super com o p r im e r a

lí n e a d e l c o n s t r u c t o r d e la s u b c la s e . L a p a la b r a s u p e r ir á s e g u id a d e p a r é n t e s is

d e n t r o d e lo s c u a le s p o n d r e m o s lo s p a r á m e t r o s q u e r e q u ie r a e l c o n s t r u c t o r d e la

s u p e r c la s e a l q u e q u e r a m o s in v o c a r .

C o n s t r u c t o r e s q u e lla m a n a C o n s t r u c t o r e s d e la m is m a c la s e

P a ra que un c o n s t r u c t o r in v o q u e a un c o n s tru c to s s o b re c a rg a d o de la

m is m a c la s e se debe u t iliz a r l a p a la b r a re s e rv a d a th is en la p r im e r a lí n e a

s e g u id o de p a r é n t e s is d e n tro de lo s c u a le s p o n d re m o s lo s p a rá m e tro s que

r e q u ie r a e l c o n s t r u c t o r a in v o c a r .

E je m p lo c o m p le t o d e c la s e s , m é t o d o s c o n y s in p a r á m e t r o s , h e r e n c ia y

c o n s tru c to re s .

package h erenci a;

public cl ass Pe rsona

priva te Str ing No mbre;

priva te Str ing Ap ellido;

priva te Str ing DN I;

publi c Pers ona()

thi s(""," ","");


}

publi c Pers ona(St ring dn i,Stri ng nom bre,St ring ap ellido )


{

N ombre = no mbre;

A pellid o = ap ellido;

D NI = d ni;
}

publi c void setNo mbre(St ring n ombre1 )


{

No mbre = nombr e1;


G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

publi c Stri ng get Nombre( )

ret urn No mbre;


}

publi c void setAp ellido( String apell ido)


{

Ap ellido = ape llido;

publi c Stri ng get Apellid o()

{
ret urn Ap ellido ;

publi c Stri ng get DNI()

ret urn DN I;
}

publi c void setDN I(Strin g dni)

{
DNI = dni ;

publi c Stri ng Nom breYApe llido( )

ret urn N ombre + " " + Apell ido;

@Over ride
publi c Stri ng toS tring()

retu rn DNI + " " + Nomb reYApe llido( );

package h erenci a;

/**

* @autho r Arna ldoJos é

*/
public cl ass Ob rero e xtends Person a{

priva te Str ing Fi cha;


priva te dou ble Su eldo;

publi c Obre ro()

{
th is("", "","", "",0d);

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

publi c Obre ro(Str ing dni ,Strin g nomb re,Str ing ape llido,
Str ing fi cha, do uble s ueldo)

sup er(dni ,nombr e,apell ido);


Fic ha = f icha;

Sue ldo = sueldo ;

publi c void setFi cha(Str ing fi cha)

Fic ha = f icha;
}

publi c Stri ng get Ficha()


{

ret urn Fi cha;

publi c void setSu eldo(do uble s ueldo)

Sue ldo = sueldo ;


}

publi c doub le get Sueldo( )

{
ret urn Su eldo;

@Over ride

publi c Stri ng toS tring()

ret urn su per.to String( ) + " " + Fi cha + " " + S ueldo;

/ / I m p le m e n t a r la s c la s e s

public cl ass He rencia {

/**
* @p aram a rgs th e comma nd lin e argu ments

*/

publi c stat ic voi d main( String [] arg s) {

P ersona p = n ew Pers ona("1 600000 0","Pe dro","R edondo ");

S ystem. out.pr intln(p .toStr ing()) ;

O brero ob = n ew Obre ro("16 000100 ","Jos é","Red ondo", "001", 15000d );

S ystem. out.pr intln(o b.toSt ring() );

}
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

G E S T IÓ N D E E X C E P C IO N E S

E l c o n t r o l d e f lu jo d e u n p r o g r a m a J a v a s a b e m o s h a s t a a h o r a q u e s e lle v a

a c a b o c o n s e n t e n c ia s d e l t ip o if , w h ile , f o r , r e t u r n , b r e a k , e t c … E s t a s s e n t e n c ia s

f o r m a n u n c o n ju n t o d e p a la b r a s r e s e r v a d a s q u e d e t e r m in a n c ie r t a f u n c io n a lid a d .

P u e s b ie n , n in g u n a d e e lla s t ie n e e n c u e n t a q u e s e p u e d a n p r o d u c ir e r r o r e s en

t ie m p o d e e je c u c ió n d e u n p r o g r a m a y p o r t a n t o J a v a n e c e s it a d e u n c o n ju n t o d e

p a la b r a s n u e v a s p a r a te n e r e n c u e n ta que c u a lq u ie r c ó d ig o p u e d e f a lla r o ser

m a l in t e r p r e t a d o e n t ie m p o d e e je c u c ió n .

V a m o s a v e r t r e s d e la s p a la b r a s r e s e r v a d a s p a r a t r a t a m ie n t o d e e x c e p c io n e s :

- T ry
- C a tc h
- F in a lly

A u n q u e p o s t e r io r m e n t e v e r e m o s o t r a s p a la b r a s m á s a v a n z a d a s y o t r a s

f o r m a s d e t r a t a m ie n t o d e e r r o r e s , é s t a s s o n la s p r im e r a s y m á s b á s ic a s c o n la s

q u e v a m o s a t r a b a ja r .

D e f o r m a in t r o d u c t o r ia d ir e m o s q u e h a y d o s f o r m a s d e t r a t a r e r r o r e s e n

J a v a : c a p t u r a r lo s o la n z a r lo s . E l u s o de try – c a tc h – f in a lly c o r r e s p o n d e a la

c a p t u r a d e e r r o r e s . V a m o s a p o n e r u n s í m il s e n c illo : u n e r r o r e s a lg o in e s p e r a d o ,

c o m o e n c o n t r a r t e u n la d r ó n d e n t r o d e t u c a s a . C u a n d o n o s e n c o n t r a m o s c o n u n

e r r o r p o d e m o s c a p t u r a r lo ( e q u iv a ld r í a a c a p t u r a r e l la d r ó n ) o la n z a r lo ( e q u iv a ld r í a

a tra ta r d e h a c e r h u ir a l la d r ó n , d e hacer que s a lg a fu e ra d e l lu g a r d o n d e se

e n c u e n tra ).

B LO Q U E TR Y

T r y e n in g lé s e s e l v e r b o in t e n t a r , a s í q u e t o d o e l c ó d ig o q u e v a y a d e n t r o

d e e s t a s e n t e n c ia s e r á e l c ó d ig o s o b r e e l q u e s e in t e n t a r á c a p t u r a r e l e r r o r s i s e

p ro d u c e y u n a v e z c a p tu ra d o h a c e r a lg o c o n é l. L o id e a l e s q u e no o c u rra un

e rro r, p e ro e n c a s o d e q u e o c u rra u n b lo q u e t r y n o s p e r m it e e s t a r p r e p a r a d o s

p a r a c a p t u r a r lo y t r a t a r lo . A s í u n e je m p lo s e r í a :
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

try {

//s e n te n c ia s o b lo q u e d e s e n te n c ia s (la ru tin a q u e s e q u ie re h a c e r)

B LO Q U E C A TC H

E n e s te b lo q u e d e f in im o s e l c o n ju n t o de in s t r u c c io n e s n e c e s a r ia s o de

t r a t a m ie n t o d e l p r o b le m a c a p t u r a d o c o n e l b lo q u e t r y a n t e r io r . E s d e c ir , c u a n d o

se p ro d u c e un e rro r o e x c e p c ió n en e l c ó d ig o que se e n c u e n tra d e n tro de un

b lo q u e try , pasam os d ir e c t a m e n t e a e je c u t a r e l c o n ju n t o de s e n t e n c ia s que

t e n g a m o s e n e l b lo q u e c a t c h . E s t o n o e s e x a c t a m e n t e a s í p e r o y a e x p lic a r e m o s

m á s a d e la n t e t o d o e l f u n c io n a m ie n t o . D e m o m e n t o p a r a u n a m e jo r c o m p r e n s ió n

v a m o s a c o n s id e r a r q u e e s t o e s a s í .

c a tc h (E x c e p tio n e ) {

//s e n te n c ia o b lo q u e d e s e n te n c ia p a ra e l m a n e jo d e la e x c e p c ió n (lo
q u e v a m o s h a c e r s i s u c e d e la e x c e p c ió n )

F í ja t e q u e d e s p u é s d e c a t c h h e m o s p u e s t o u n o s p a r é n t e s is d o n d e p o n e

“ E x c e p t io n e ”. E s to s ig n if ic a que cuando se p ro d u c e un e rro r J a v a g e n e ra un

o b je t o d e t ip o E x c e p t io n c o n la in f o r m a c ió n s o b r e e l e r r o r y e s t e o b je t o s e e n v í a

a l b lo q u e c a t c h .

B L O Q U E F IN A L L Y

Y p a ra f in a liz a r te n e m o s el b lo q u e f in a lly que es un b lo q u e donde

p o d r e m o s d e f in ir u n c o n ju n t o de in s t r u c c io n e s n e c e s a r ia s ta n to si se p ro d u c e

e r r o r o e x c e p c ió n c o m o s i n o y q u e p o r t a n t o s e e je c u t a s ie m p r e . E s t e b lo q u e n o

e s o b lig a t o r io
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

fin a lly {

/ / “ b lo q u e d e c ó d ig o e je c u t a d o s ie m p r e ”

J e r a r q u í a d e E x c e p c io n e s e n ja v a
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

E je m p lo d e M a n e jo d e e x c e p c io n e s

public cl ass Pr ograma {

publi c stat ic voi d main (Strin g [] a rgs) {

t ry{

Sys tem.ou t.print ln("In tentam os eje cutar e l bloq ue de instru cciones :");

Sys tem.ou t.print ln("In strucc ión 1. ");

int n = I nteger. parseI nt("30 0");

Sys tem.ou t.print ln("In strucc ión 2. ");

Sys tem.ou t.print ln("In strucc ión 3, etc.") ;

c atch ( Number FormatE xcepti on e)

System .out.pr intln( "Instr uccion es a ej ecutar cuand o se p roduce un


error");

fi nally{

Sy stem.o ut.pri ntln("I nstruc ciones a eje cutar f inalme nte ta nto si se pro ducen
errores c omo si no.") ;

M A N E JO D E A R C H IV O S E N JA V A LE E R Y E S C R IB IR O B JE TO S E N

A R C H IV O S

U n a r c h iv o e s u n g r u p o d e d a t o s e s t r u c t u r a d o s q u e s o n a lm a c e n a d o s e n a lg ú n

m e d io de a lm a c e n a m ie n t o y pueden ser usados por la s a p lic a c io n e s

( p r o g r a m a s ) . L a f o r m a e n q u e u n a c o m p u t a d o r a o r g a n iz a , d a n o m b r e , a lm a c e n a

y m a n ip u la lo s a r c h iv o s s e d e n o m in a “ s is t e m a d e a r c h iv o s ” y s u e le d e p e n d e r d e l

S is t e m a O p e r a t iv o y d e l m e d io d e a lm a c e n a m ie n t o ( d is c o d u r o , d is c o e x te rn o ,

m e m o r ia s U S B , e t c )
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

L a c a r a c t e r í s t ic a p r in c ip a l d e lo s a r c h iv o s e s e l N o m b r e y s u e x t e n s ió n , E l n o m b r e

e s la id e n t if ic a c ió n d e l a r c h iv o y su e x t e n s ió n in d ic a e l t ip o de a r c h iv o al que

c o r r e s p o n d e , la e x t e n s ió n g e n e r a lm e n t e e s d e t r e s c a r a c t e r e s , p o r e je m p lo :

 N o m b re .d o c e s q u e u n a r c h iv o t ip o d o c u m e n t o ( d e M ic r o s o f t W o r d )

 N o m b r e . m p 3 e s u n a r c h iv o d e m ú s ic a

 N o m b r e . x ls e s u n a r c h iv o d e h o ja d e c á lc u lo ( M ic r o s o f t E x c e l)

 N o m b r e . t x t e s u n a r c h iv o d e t e x t o

P a q u e te ja v a .io

E l p a q u e t e ja v a . io c o n t ie n e c a s i t o d a s la s c la s e s q u e p o d a m o s n e c e s it a r

p a r a lle v a r a c a b o la e n t r a d a y s a lid a ( I / O ) e n J a v a . E n e s p e c ia l, v a m o s a h a c e r

u s o d e lo s lla m a d o s s t r e a m s p a r a p o d e r le e r y e s c r ib ir d a t o s e n lo s a r c h iv o s . U n

s tre a m puede s e r d e f in id o com o una s e c u e n c ia de d a to s . E l In p u tS tre a m se

u t iliz a p a r a le e r d a t o s d e una fu e n te y e l O u tp u tS tre a m se u t iliz a p a ra e s c r ib ir

d a t o s e n u n d e s t in o .

L a s c la s e s F Ile In p u tS tre a m y F ile O u tp u tS tre a m

G r a n p a r t e d e la e n t r a d a y s a lid a d e lo s p r o g r a m a s s e r e a li z a b a s á n d o s e

e n a r c h iv o s y p a r a e llo ja v a . io a p o r t a d o s c la s e s . U n a p a r a f ic h e r o s d e e n t r a d a ,

F ile In p u tS tre a m , y o tra p a ra f ic h e r o s de s a lid a , F ile O u tp u tS tre a m . La

d if e r e n c ia e n t r e f ic h e r o s d e e n t r a d a y d e s a lid a e s f u n d a m e n t a l, p u e s s it u a c io n e s

c o m o in t e n t a r le e r d e u n f ic h e r o d e s a lid a o v ic e v e r s a p u e d e n g e n e r a r e n e r r o r e s .

L a s c la s e s O b je c tIn p u tS tre a m y O b je c tO u tp u tS tre a m

S on f ilt r o s de s e c u e n c ia que p e r m it e n le e r y e s c r ib ir o b je t o s de una

c o r r ie n t e d e d a t o s o r ie n t a d a a b y t e s . S o lo t ie n e s e n t id o s i lo s d a t o s a lm a c e n a d o s

s o n o b je t o s .

E l m é t o d o r e a d O b j e c t d e v u e lv e u n o b je c t d e lo s d a t o s d e la e n t r a d a

P a ra c o n t r o la r la s e x c e p c io n e s m e d ia n t e try c a tc h , o p c io n a lm e n t e

p o d e m o s c o n t r o la r m e d ia n t e t h r o w s E x c e p t io n e n la f u n c ió n q u e u s a r e m o s
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

¿ C ó m o le e r u n te x to d e u n a rc h iv o ?

E c h e m o s u n o jo a l s ig u ie n t e c ó d ig o :

import ja va.io. Buffer edReade r;

import ja va.io. Buffer edWrite r;

import ja va.io. FileNo tFoundE xcepti on;


import ja va.io. FileRe ader;

import ja va.io. FileWr iter;

import ja va.io. IOExce ption;

public cl ass Ar chivoM uestra {

public String leerT extoArc hivo(S tring nombre Archivo ) {


Strin g text o = "" ;

FileR eader archiv o = nul l;

Strin g line a = "" ;


try {

arc hivo = new F ileRead er(nom breArc hivo);

Buf feredR eader lector = new Buffer edRead er(arch ivo);

whi le ((l inea = lector .readL ine()) != nu ll) {


t exto + = line a + "\n ";

}
catch (File NotFou ndExcep tion e )

throw new Runti meExce ption(“ Archiv o no e ncontr ado");

}
catc h (IOE xcepti on e)

throw ne w Runt imeExc eption( “error de en trada/ salida“ );


}

final ly

if (archi vo != null)
{

try {

arc hivo.cl ose();


}

catch (IOExc eption e) {

e.pr intSta ckTrac e();


}

retu rn tex to;


}

P odem os o b s e rv a r que en el c ó d ig o d e c la r a m o s una c la s e e je m p lo

lla m a d a A r c h iv o M u e s t r a y u n m é t o d o le e r T e x t o A r c h iv o e l c u a l n o s v a a y u d a r a

e x t r a e r e l t e x t o d e l a r c h iv o . E l m é t o d o s e a y u d a d e la c la s e F ile R e a d e r d e J a v a

p a r a a c c e d e r a l a r c h iv o y d e u n b u f f e r d e le c t u r a ( B u f f e r e d R e a d e r ) p a r a poder

e x t r a e r lo s d a t o s d e l t e x t o .

S im p le m e n t e lo q u e r e a liz a a m a n e r a d e f lu jo e s t e m é t o d o , e s la a p e r t u r a

d e l a r c h iv o con a y u d a d e l a r c h iv o = new F ile R e a d e r ( n o m b r e A r c h iv o ) , s e g u n d o


G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

g e n e r a u n b u f f e r d e le c t u r a e n e l c u a l s e v a a ir c a r g a n d o e l t e x t o e x t r a í d o del

a r c h iv o c o n a y u d a d e l B u f f e r e d R e a d e r le c t o r . Y p o r ú lt im o v a a ir r e c o r r ie n d o c o n

u n f o r lo o p e l a r c h iv o lí n e a p o r lí n e a y a l a lm a c e n a n d o e l c o n t e n id o d e d ic h a lí n e a

e n e l b u f f e r le c t o r p a r a q u e u n a v e z q u e s e f in a lic e la le c t u r a y s e c ie r r e e l a r c h iv o

c o n a r c h iv o . c lo s e ( ) s e a r e t o r n a d o e l v a lo r d e l t e x t o .

¿ C ó m o g u a r d a r u n t e x t o e n u n a r c h iv o ?

import ja va.io. Buffer edReade r;

import ja va.io. Buffer edWrite r;

import ja va.io. FileNo tFoundE xcepti on;


import ja va.io. FileRe ader;

import ja va.io. FileWr iter;

import ja va.io. IOExce ption;

public cl ass Ar chivoM uestra {

public vo id esc ribirT extoArc hivo(S tring nombre Archivo , Stri ng tex to) {
FileW riter salida = null ;

try {

salida = new Fi leWrit er(nomb reArch ivo);


BufferedW riter escrit or = ne w Buff eredWr iter(s alida);

escritor. write( texto) ;

}
c atch ( IOExce ption e )

e.pr intSta ckTrace ();

}
f inally

if ( salida != nul l) {
try {

salida .close( );

catc h (IOE xceptio n e)


{

e. printS tackTra ce();

}
}

}
}

P odem os o b s e rv a r que en el c ó d ig o d e c la r a m o s una c la s e e je m p lo

lla m a d a A r c h iv o M u e s t r a y u n m é t o d o e s c r ib ir T e x t o A r c h iv o e l c u a l n o s v a a y u d a r

a g u a r d a r e l t e x t o d e l a r c h iv o . E l m é t o d o s e a y u d a d e la c la s e F i l e W r i t e r d e J a v a
G u ía d e J a v a B á s ic a | In g . A r n a ld o R o d r íg u e z

p a r a a c c e d e r a l a r c h iv o y d e u n b u f f e r d e e s c r it u r a B u f f e r e d W r i t e r p a r a p o d e r

g u a r d a r lo s d a t o s d e l t e x t o .

S im p le m e n t e lo q u e r e a liz a a m a n e r a d e f lu jo e s t e m é t o d o , e s la a p e r t u r a

d e l a r c h iv o con ayuda d e l s a lid a = new F ile W r it e r ( n o m b r e A r c h iv o ) , segundo

g e n e ra un b u ffe r d e s a lid a en el cual se va a c a rg a r e l te x to con ayuda del

B u f f e r e d W r it e r e s c r it o r . Y p o r u lt im o va a e s c r ib ir lo s d a t o s e n e l a r c h iv o con

e s c r it o r . w r it e ( t e x t o ) , u n a v e z q u e s e f in a lic e la e s c r it u r a s e c e r r a r á e l a r c h iv o c o n

s a lid a . c lo s e ( ) .

P a ra p ro b a r la c la s e que c re a m o s a n t e r io r m e n t e p r im e r o vam os a

n e c e s it a r c r e a r u n a r c h iv o de p ru e b a lla m a d o P ru e b a .tx t y que e l m is m o se

e n c u e n t r e e n la c a r p e t a d e n u e s t r o p r o y e c t o d e p r u e b a . S e g u n d o v a m o s a t e n e r

q u e a g r e g a r e l s ig u ie n t e c ó d ig o e n la c la s e p r in c ip a l

public cl ass ma in
{

public static void main(St ring[] args)

{
Archi voMues tra ar chivo = new A rchivo Muestr a();

Strin g entr ada = archivo .leerT extoAr chivo( "Prueba .txt") ;

Syste m.out. printl n(entra da);

archi vo.esc ribirT extoArc hivo(" Prueba Copia. txt", e ntrada );


}

También podría gustarte