Guia de Java Basica
Guia de Java Basica
Guia de Java Basica
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 .
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
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 .
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 .
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 :
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 .
d e t e r m in a r la c la s e p r in c ip 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
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
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 .
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
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
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
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
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
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
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 :
p r o g r a m a e s la s ig u ie n t e :
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 ?
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 .
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
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 :
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 ) .
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 ,
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
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
“ 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
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
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 .
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
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
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
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 .
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
sh ort sh 1,sh2=3 0;
int a=1,b ;
b = a + 2 ;
long l1,l 2;
l1 = 10l;
l2= 16300 400l;
b1 = !b2;
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 :
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 .
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 (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 .
m a y ú s c u la .
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
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 .
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 .
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
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"));
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
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
Ob ject a , b;
in t c;
a = 50;
b = 30;
c = (int )a + ( int)b;
Sy stem.o ut.pri ntln(c) ;
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
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
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 ).
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 .
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
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 ());
S a lid a p o r c o n s o la
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
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” );
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)
else
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
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
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;
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 ;
}
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
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 ‘? ’
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
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
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
s ig u ie n t e f o r m a :
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 .
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.
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
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
b[0][0] = 10;
b[0][1] = 10;
b[1][0] = 15;
b[1][1] = 30;
};
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
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
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
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
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
a = b;
b =c;
c = a + b;
i f(i!= 10)
L a s a lid a p o r c o n s o la e s :
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)
i=1;
whi le(i<= 10)
a = b;
b = c;
c = a + b;
if(i!= 10)
i +=1;
L a s a lid a p o r c o n s o la e s :
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)
do
{
a = b;
b = c;
c = a + b;
if(i!= 10)
Sys tem.ou t.print (c + " , ");
else
L a s a lid a p o r c o n s o la e s :
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
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 .
{1, 2 , 3},
{4, 5 , 6},
{7, 8 , 9}
};
{
"Lun es","M artes", "Miérc oles",
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
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 .
String va riable ;
int enter o;
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
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
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
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
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:
Int P atas;
public An imal(S tring n, Stri ng p)
Nombre = n;
Patas = p ;
}
//Mé todo ab stract o que debe s er rede finido por l as sub clases
Strin g Raza ;
R aza = r;
@Over ride
boole an Vu ela() {
r eturn false;
}
}
}
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
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
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
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
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
nombre = n;
numPer sonas+ +;
System .out.p rintln (" pero hay " + (numP ersona s - 1) + " pe rsonas
más.");
}
}
p1.mue stra() ;
p3.mue stra() ;
S a lid a p o r P a n t a lla :
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 .
Ci rculo( int r) {
ra dio=r;
}
p ublic double area() {
}
}
class Fin al {
}
}
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
var2=v2;
}
}
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
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
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
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 .
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á
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 .
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
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
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
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
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
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 ) .
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
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
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
d e n o m in a n a r g u m e n t o s
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 .
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
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
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 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
{
ret urn (n um1 + num2);
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 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 :
{
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 )
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 :
}
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 :
/**
*/
pubic abs tract class Instrum ento
}
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 c lass G uitarr a exten ds Ins trumen to
public Gu itarra ()
{
}
@Ove rride
{
System.ou t.prin tln("T ocar La Guita rra");
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
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
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
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
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;
N ombre = no mbre;
A pellid o = ap ellido;
D NI = d ni;
}
{
ret urn Ap ellido ;
ret urn DN I;
}
{
DNI = dni ;
@Over ride
publi c Stri ng toS tring()
package h erenci a;
/**
*/
public cl ass Ob rero e xtends Person a{
{
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)
Fic ha = f icha;
}
{
ret urn Su eldo;
@Over ride
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
/**
* @p aram a rgs th e comma nd lin e argu ments
*/
}
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
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
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 {
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
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
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
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
t ry{
Sys tem.ou t.print ln("In tentam os eje cutar e l bloq ue de instru cciones :");
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
( 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
d a t o s e n u n d e s t in o .
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 ,
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 .
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 :
}
catch (File NotFou ndExcep tion e )
}
catc h (IOE xcepti on e)
final ly
if (archi vo != null)
{
try {
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
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 ?
public vo id esc ribirT extoArc hivo(S tring nombre Archivo , Stri ng tex to) {
FileW riter salida = null ;
try {
}
c atch ( IOExce ption e )
}
f inally
if ( salida != nul l) {
try {
salida .close( );
}
}
}
}
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
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
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
{
{
Archi voMues tra ar chivo = new A rchivo Muestr a();