Está en la página 1de 17

1

Gua de introduccin al lenguaje JAVA


Prof: Luis Snchez
Breve historia
Hace algunos aos Sun !icros"ste#s decidi intentar introducirse en el #ercado
de la electrnica de consu#o " desarrollar $rogra#as $ara $e%ueos dis$ositi&os
electrnicos' (ras un co#ienzo inesta)le Sun decidi crear una filial deno#inada
FirstPearson Inc' $ara %ue fuera la res$onsa)le del $ro"ecto' *nicial#ente los
desarrollos esta)an dirigidos a los e%ui$os do#+sticos: #icroondas tostadoras "
funda#ental#ente tele&isin interacti&a'
,e)ido a la falta de ha)ilidad de los usuarios $ara el #anejo de estos dis$ositi&os
la fia)ilidad del cdigo " la facilidad de desarrollo' Ja#es Gosling decidi %ue las
&entajas a$ortadas $or -.. no co#$ensa)an el gran costo de $rue)as "
de$uracin' /ste a su &ez desarrolla)a un lenguaje de $rogra#acin lla#ado
0A1 el cual $artiendo de -.. intenta)a e&itar las deficiencias %ue i)a
o)ser&ando'
Para Gosling los siste#as desarrollados en - o -.. de)an ser co#$ilados $ara
una ar%uitectura " si se ca#)ia)a la ar%uitectura todo el soft2are de)era
co#$ilarse de nue&o' /sto encarece #ucho los desarrollos3 $or tanto Gosling
decidi #ejorar las caractersticas de 0A1 " utilizarlo'
/l uso de este lenguaje se a$lic a un $ro"ecto lla#ado Green el cual consista
en un siste#a de control co#$leto de los a$aratos electrnicos " el entorno de un
hogar' Para ello se constru"o un co#$utador e4$eri#ental deno#inado 56 7star
se&en83 $osterior#ente se a$lico a otro $ro"ecto deno#inado V0, 7Video on
,e#and8 en el %ue se e#$lea)a $ara interfaz de la tele&isin interacti&a' 9inguno
de estos $ro"ectos se con&irti nunca en un siste#a co#ercial $ero fueron
desarrollados en lo %ue se conoce co#o Ja&a $ri#iti&o'
,e)ido a estas circunstancias en :;;< FirstPearson Inc cierra sus $uertas'
2
Pero fue =ill Joe cofundador de Sun %uien reto#o el $ro"ecto de A01 " tras
ciertos ca#)ios en el diseo " no#)res nace JAVA el cual fue $resentado en
:;;>'
Caractersticas
Las caractersticas $rinci$ales %ue nos ofrece JAVA son las siguientes:
Simple
Ja&a ofrece toda la funcionalidad de un lenguaje $otente $ero sin to#ar en cuenta
las caractersticas confusas de estos $or eje#$lo Ja&a $uede ser co#$ilado en
cual%uier ar%uitectura " )ajo cual%uier siste#a o$erati&o3 #ientras %ue se de)e
ada$tar al siste#a o$erati&o " ar%uitectura del co#$utador' Ja&a e&ita en un >?@
el #anejo de a$untadores referencias a #e#orias 7t"$edef struct Adefine8'
Orientado a objeto
Ja&a i#$le#enta la tecnologa de -.. $ero con algunas #ejoras " #anteniendo la
si#$licidad del lenguaje' (ra)aja sus datos co#o o)jetos " con interfaces a esos
o)jetos' So$orta las tres caractersticas $rinci$ales de la P00'
/nca$sula#iento herencia " $oli#orfis#o'
Distribuido
Ja&a fue creado $ara el entorno distri)uido de internet "a %ue gestiona los
$rotocolos de intercone4in (-PB*P' /sta caracterstica $er#ite a los
$rogra#adores acceder a la infor#acin a tra&+s de la red' (a#)i+n $ro$orciona
li)reras " herra#ientas $ara %ue los $rogra#as $uedan ser distri)uidos es decir
%ue se ejecuten en &arias #%uinas interactuando entre s'
Robusto
Ja&a realiza &erificaciones en )usca de $ro)le#as tanto en tie#$o de ejecucin
co#o en tie#$o de co#$ilacin' La co#$ro)acin a"uda a detectar errores los
antes $osi)les o)liga a la declaracin e4$lcita de #+todos' !aneja la #e#oria
$ara eli#inar las $reocu$aciones $or $arte del $rogra#ador' Ade#s $ara
asegurar el funciona#iento de la a$licacin realiza una &erificacin de los )"tesC
codes %ue son el resultado de la co#$ilacin de un $rogra#a en ja&a
3
Arquitectura neutral o ultiplata!orma
Para esta)lecer Ja&a co#o $arte integral de la red el co#$ilador Ja&a co#$ila su
cdigo a un fichero o)jeto de for#ato inde$endiente de la ar%uitectura de la
#%uina en %ue se ejecutar' -ual%uier #%uina %ue tenga el siste#a de
ejecucin 7run ti#e8 $uede ejecutar ese cdigo o)jeto sin i#$ortar en #odo
alguno la #%uina en %ue se ha"a generado'
Interpretado
Ja&a $er#ite la creacin de $rogra#as %ue se $ueden ejecutar en diferentes
$latafor#as $or #edio de la co#$ilacin en una re$resentacin inter#edia
lla#ada cdigo )"tecode' /ste cdigo $uede ser inter$retado en cual%uier siste#a
%ue tenga un int+r$rete Ja&a' /l )"tecode fue cuidadosa#ente diseado $ara %ue
fuera fcil traducirlo al cdigo nati&o " $oder conseguir as un rendi#iento alto
!ultithreaded 7#ultiflujo o #ultihilo8
Ja&a $er#ite #uchas acti&idades si#ultneas en un $rogra#a' Los threads son
)sica#ente $rocesos o $iezas inde$endientes de un gran $roceso' /l )eneficio
de ser #ultithreaded consiste en #ejor rendi#iento interacti&o " #ejor
co#$orta#iento en tie#$o real'
Din"mico
Ja&a se )eneficia todo lo $osi)le de la tecnologa orientada a o)jeto' Ja&a no
intenta conectar todos los #dulos %ue co#$renden una a$licacin hasta el
tie#$o de ejecucin' Las li)reras nue&as o actualizadas no $aralizarn las
a$licaciones actuales 7sie#$re %ue #antengan el a$i anterior8
Ja&a $ara e&itar %ue los #dulos de )"teCcodes o los o)jetos o nue&as clases
ha"a %ue estar tra"+ndolos de la red cada &ez %ue se necesiten i#$le#enta las
o$ciones de $ersistencia $ara %ue no se eli#inen cuando se li#$ie la cache de la
#%uina'
#elocidad
Los $rogra#as en ja&a no tienden hacer #u" r$idos de)ido a %ue co#o es un
lenguaje inter$retad no alcanza la &elocidad %ue un ejecuta)le'
4
$A %&'I(A #IR)'A$ D* +A#A ,+#-
/s un entorno de ejecucin $ara a$licaciones JAVA cu"a finalidad es la de
ada$tar los $rogra#as Ja&a co#$ilados a las caractersticas del siste#a o$erati&o
donde se &an a ejecutar'
*DICIO(*S D* +A#A
/l entorno de ja&a se caracteriza $or dis$oner de un a#$lio conjunto de $a%uetes
de clases $ara la realizacin de las a$licaciones' /ste gru$o de clases se organiza
en tres grandes ediciones Ja&a'
+.S* ,+ava . *st"ndar *dition-/ /sta confor#ado $or los $a%uetes de uso
general es decir a%uellos %ue se usan en cual%uier a$licacin3 co#o son
trata#iento de cadenas colecciones acceso a datos entornos grficos "
a$licaciones $ara na&egadores internet'
+.** ,+ava *nterprise *dition-/ Pro$orciona los $a%uetes " tecnologas
necesarias $ara la creacin de a$licaciones e#$resariales #ultica$a entre ellas
las a$licaciones %ue se &an a ejecutar en entorno 2e)'
COD.FUENTE
BYTE-CODES
JVM
LINUX
JVM
OTRO
JVM
WINDOWS
S.O. WINDOWS S.O. LINUX OTRO S.O
PROGRAMA ORIGINAL
EN JAVA .jaa
COMPILACI!N
PROGRAMA OBJETO
."#a$$
COD.FUENTE
BYTE-CODES
JVM
LINUX
JVM
OTRO
JVM
WINDOWS
S.O. WINDOWS S.O. LINUX OTRO S.O
PROGRAMA ORIGINAL
EN JAVA .jaa
COMPILACI!N
PROGRAMA OBJETO
."#a$$
EJECUCI!N
%
+.* ,+ava . icro *dition-/ /sta edicin inclu"e una serie de $a%uetes "
es$ecificaciones %ue $osi)ilitan la creacin de a$licaciones Ja&a ejecuta)les en
dis$ositi&os electrnicos de ca$acidad li#itada'
+ava Development 0it ,+D0-
/ste Dit de desarrollo $ro$orciona el conjunto de herra#ientas )sico $ara el
desarrollo de a$licaciones con Ja&a estndar'
I()*1RA)*D D*#*$OP*() *(#IRO(*() ,ID*-
/s un entorno de $rogra#acin %ue ha sido e#$a%uetado co#o un $rogra#a de
a$licacin es decir consiste en un editor de cdigo un co#$ilador un de$urador
" un constructor de interfaz grfica 7GE*8' Los *,/s $ueden ser a$licaciones $or s
solas o $ueden ser $arte de a$licaciones e4istentes'
/ntre los entornos de $rogra#acin dedicados a la $rogra#acin en Ja&a
tene#os: 9et=eans' J)uilder Jde&elo$er /cli$se Jgras$ Jcreator ''
Pro2ramaci3n Orientada a Objetos ,POO o OOP-
-onsiste en una coleccin de o)jetos %ue se crean interactFan entre s "
e&entual#ente desa$arecen cuando "a no son Ftiles'
Orientado a objeto/ significa %ue el soft2are se organiza co#o una coleccin de
o)jetos %ue contienen estructuras de datos con un #is#o co#$orta#iento'
Objeto/ es algo %ue tiene sentido en el conte4to de la a$licacin' /s un conce$to
a)straccin o cosa con l#ites )ien definidos " con significado a efectos del
$ro)le#a %ue se tenga en #ano'
Los o)jetos tienen dos $ro$sitos: $ro#o&er la co#$rensin del #undo real "
$ro$orcionar una )ase $rctica $ara la i#$le#entacin $or co#$utadora'
Caractersticas de los objetos
Identidad3 indica %ue los datos estn cuantificados en entidades discretas "
distingui)les deno#inadas o)jetos
Clasi!icaci3n: significa %ue los o)jetos con la #is#a estructura de datos "
co#$orta#iento se agru$an $ara for#ar una clase
&
Clase/ Las clases son declaraciones de o)jetos ta#)i+n se $odran definir co#o
a)stracciones de o)jetos' /sto %uiere decir %ue la definicin de un o)jeto es la
clase' -uando $rogra#a#os un o)jeto " defini#os sus caractersticas "
funcionalidades en realidad lo %ue esta#os haciendo es $rogra#ar una clase''
4todo/ es una funcin u o$eracin %ue se $uede a$licada $or los o)jetos de una
clase
Atributo/ re$resentan los datos asociados al o)jeto o lo %ue es lo #is#o sus
$ro$iedad des o caractersticas' Los atri)utos " sus &alores en un #o#ento dado
deter#inan el estado de un o)jeto.
Caractersticas principales de la POO
*ncapsulaci3n/ La enca$sulacin es un #ecanis#o %ue consiste en organizar
datos " #+todos de una estructura conciliando el #odo en %ue el o)jeto se
i#$le#enta es decir e&itando el acceso a datos $or cual%uier otro #edio distinto
a los es$ecificados' Por lo tanto la enca$sulacin garantiza la integridad de los
datos %ue contiene un o)jeto'
5erencia: consiste en co#$artir atri)utos " #+todos entre las clases to#ando
co#o )ase una relacin jerr%uica'
/je#$lo:
Asu#a %ue tene#os una clase GPersonaG con los #+todos " $ro$iedades )sicas
de una o)jeto $ersona co#o $odran ser Gca#inarG o Gha)larG $odra#os tener
otras clases co#o GGuiller#oG o GPedroG %ue co#$arten todas las caractersticas
de una GPersonaG $ero %ue aaden caractersticas $ro$ias' Por lo %ue GGuiller#oG
" GPedroG $ueden realizar las #is#as funciones %ue $uede realizar una GPersonaG
" ade#s cada una $uede realizar las su"as $ro$ias $or eje#$lo GGuiller#oG
sa)e nadar $ero GPedroG no " GPedroG sa)e )ailar reggeton $ero GGuiller#oG no'
Polimor!ismo: el $oli#orfis#o se refiere a la ca$acidad $ara %ue &arias clases
deri&adas de una antecesora utilicen un #is#o #+todo de for#a diferente'
/je#$lo:
'
Su$onga las siguientes clases Pez " A&e %ue heredan de la su$erclase Ani#al' La
clase Ani#al tiene el #+todo a)stracto mover %ue se i#$le#enta de for#a
distinta en cada una de las su)clases 7$eces " a&es se #ue&en de for#a distinta8'
Introducci3n al len2uaje de pro2ramaci3n +ava
Sinta6is B"sica
Lenguaje sensi)le a #a"Fsculas " #inFsculas lo %ue %uiere decir %ue hace
distincin entre #a"Fsculas " #inFsculas no es lo #is#o escri)ir /,A,
%ue /dad
Las lneas de sentencias finalizan en el carcter H7I
Los )lo%ues de sentencias se deli#itan entre lla&es H8H a)re un )lo%ue de
sentencia H9I cierra un )lo%ue de sentencias
Comentarios
/n ja&a e4isten tres #aneras de declarar los co#entarios
-o#entarios de una lnea &an $recedido $or los caracteres H::I
-o#entarios #ultilneas los cuales se inician con los caracteres H:;I " finalizan con
los caracteresI;:I
-o#entarios de docu#entacin se inician con los caracteres H:;;I " finalizan con
los caracteres H;:'I /stos co#entarios a diferencias de los dos anteriores se
al#acenan en un docu#ento ja&a'doc generado $or ja&a auto#tica#ente
cuando se utiliza esta herra#ienta'
Palabras reservadas
Son todas a%uellas $ala)ras cla&es definidas en Ja&a " %ue no se $ueden utilizar
co#o identificadores' Por eje#$lo: a)stract continue for ne2 s2itch $acDage''
Identi!icadores
Los identificadores son los no#)res %ue se le dan a las &aria)les funciones
constantes clases " o)jetos
Re2las para crear los identi!icadores
,e)en co#enzar $or una letra o su)ra"ado
Pueden contener &alores nu#+ricos
/l Fnico s#)olo es$ecial %ue se usa es el su)ra"ado
(
9o de)e lle&ar es$acios en )lanco
9o de)e ser el no#)re de una $ala)ra reser&ada
/n Ja&a e4isten reglas $ara deter#inar cuando un identificador es una clase
&aria)le constante o #+todo' /stas son las siguientes:
Los no#)res de &aria)les " #+todos co#ienzan con #inFsculas' Si se trata
de un no#)re co#$uesto cada $ala)ra e#$ieza con #a"Fscula no se
utiliza el carcter su)ra"ado' /je#$los: n nu#ero nu#ero,e/le#entos
$onValor escri)e(itulo sueldo9eto'
Los no#)res de clases sie#$re co#ienzan con #a"Fscula' Si se trata de
no#)res co#$uestos cada $ala)ra se inicia con #a"Fsculas no se utiliza
el carcter su)ra"ado' /je#$los: Volu#en-ilindro Alu#no
Progra#a,ePrue)a'
Los no#)res de constantes se escri)en con #a"Fscula si es un no#)re
co#)inado se utiliza el carcter su)ra"ado' /je#$lo: P*
(A!AJ0K!AL*!0'
*structura de un Pro2rama en +A#A
$u)lic class 9o#)re,e-lase
M
$u)lic static &oid #ain 7StringN O args8
M sentencias3
P
P
*lementos del $en2uaje +ava
)ipos de datos primitivos
(oda la infor#acin %ue #aneja ja&a se re$resenta $or un o)jeto o un ti$o de
dato )sico' Ja&a so$orta los ocho ti$os de datos $ri#iti&os int short long )"te
char float dou)l+ " )oolean'
)
/ntre estos ocho ti$os de datos no se encuentran los %ue re$resentan una cadean
7String8 el #oti&o es %ue en ja&a estas se tratan #ediante o)jetos de la clase
String'
Los ti$os de datos $ri#iti&os se agru$an en cuatro:
*nteros
(i$o /s$acio en #e#oria
en )"tes
Qango
="te : C:RS a :R6
Short R CTR6US a TR6U6
*nt < CR:<6<STU<S a R:<6<STU<6
long S C;RR::6?TUS><66>S?S
a;RR::6?TUS><66>S?S
Reales
(i$o /s$acio en #e#oria
en )"tes
Qango
float < .CT'<?RSRT<6e.TS a .C:'<?RT;S
dou)le S .C:'6;6U;T:T<SURRT:>6?eT?S a
<';<?U>U<>S<:R<U><<eCTR<
-arcter
(i$o /s$acio en #e#oria
en )"tes
-har R
Lgicos
(i$o Valor $or defecto Qango
=oolean false (rue o false
#ariables
/s un es$acio de #e#oria donde un $rogra#a $uede al#acenar un dato %ue
$uede ca#)iar durante el $roceso de ejecucin'
Declaraci3n de las variable
Sinta4is
1*
ti$oKdeKdato no#)re,eVaria)le3
o
ti$oKdeKdato no#)re,eVaria)leV&alorinicial3
Constantes
Son $osiciones de #e#orias referenciadas $or un no#)re %ue no ca#)ian su
&alor durante el $roceso de ejecuci'
Declaraci3n de las constantes
Sinta4is
final ti$odedato 90!=Q/K,/K-09S(A9(/V&alor3
0$eradores
Aritmeticos
0$erador Qesultado
. Su#a
C Qesta o unario
5 !ulti$licacin
B ,i&isin 7si se a$lica a un ti$o entero el
resultado ser la $arte entera de la
di&isin8
@ !odulo o resto
Asi2naci3n
0$erador Qesultado
.V Su#a " asignacin AVA.> A.V>
CV Qesta " asignacin AVACR ACVR
5V !ulti$licacin " asignacin AVA5< A5V<
BV ,i&isin " asignacin AVABT ABVT
@V Qesto " asignacin AVa@R A@VR
Incremento < decremento
0$erador Qesultado
.. *ncre#ento si es ..A ser $re incre#ento " en el
caso de %ue sea A.. significa $ost incre#ento
CC ,ecre#ento ..A ser $re decre#ento " en el caso
de %ue sea A.. significa $ost decre#ento
11
Relacionales
0$erador Qesultado
VV *gual %ue
!V ,iferente de
W !a"or %ue
X !enor %ue
WV !a"or o igual
XV !enor o igual
$32icos
0$erador Qesultado
YY And en cortocircuito
ZZ 0r en cortocircuito
! 9ot
[ Lo 7or e4clusi&o8r
Y And lgico
Z 0r lgico
Precedencia de los Operadores
7 8
.. CC !
5 B @
. C
W W WV XV
VV
Y
[
Z
YY
ZZ
V
Secuencias de escape ,=-
\]) Qetroceso
]n Salto de lnea
]t (a)ulacin horizontal
]] =arra ]
]^ -o#illa si#$le
12
]^^ -o#illa do)le
13
*structuras de control en +ava
*structuras condicional/ son a%uellas %ue $er#iten ejecutar una serie de
instrucciones segFn el &alor arrojado $or una e4$resin relacional o lgica> /ntre
ellas tene#os:
Simple: /n este caso se &alida la e4$resin relacional o lgica " si esta es
&erdadera se ejecutan las instrucciones corres$ondiente3 " el $rogra#a continuara
con las siguientes lneas de instruccin'
if 7condicion8
M
sentencias a ejecutar3
P
Doble/ /n este caso se &alida la e4$resin relacional o lgica " si esta es
&erdadera se ejecutan las instrucciones corres$ondiente3 " si es falsa se
ejecutaran el otro gru$o de instrucciones' Por a#)os casos el $rogra#a
continuar con las siguientes lneas de instruccin
I! ,condicion8 M
sentencias a ejecutar si la condicion es &erdadero3
P
else M
sentencias a ejecutar si la condicion es falsa3
P
Selecci3n ?ltiple/ /sta estructura nos $er#ite ejecutar una serie de
instrucciones segFn se cu#$la una de las condiciones $reesta)lecidas " luego
continuar con las siguientes instrucciones del $rogra#a'
Caso @/
i! ,condicion- M
sentencias a ejecutar si la condicion es &erdadero3
P
14
else i! ,condicion@- M
sentencias a ejecutar si la condicion: es &erdadero3
P
else i! ,condicion.- M
sentencias a ejecutar si la condicionR es &erdadero3
P
*lseM
sentencias a ejecutar si ninguna de las condiciones son &erdadero
P
-aso R:
sAitch,e6pression-M
case @:M
sentencias a ejecutar si el &alor de la e4$resin es :3 )reaD3
P
case .:M
sentencias a ejecutar si el &alor de la e4$resin es R3 )reaD3
P
case B:M
sentencias a ejecutar si el &alor de la e4$resin es T3 )reaD3
P
de!ault:M
sentencias a ejecutar si el &alor no corres$onde a ninguna de
las anteriores3 )reaD3
P
P
La sentencia )reaD indica en esta estructura %ue el $rogra#a de)e continuar al
final de la estructura s2itch o sea en la siguiente lnea de instruccin des$u+s de
la estructura s2itch'
1%
0tra for#a de i#$le#entar estructuras #Flti$les es a tra&+s de la anidacin de
estructuras if " sus diferentes co#)inaciones'
I! ,condicion8 M
sentencias a ejecutar si la condicion es &erdadero3
P
else M
I! ,condicion@8 M
sentencias a ejecutar si la condicion: es &erdadero3
P

else M
i! ,condicion.-
M
sentencias a ejecutar3
P
P
P
*structuras iterativas:cclicas:bucles:laCos/ son estructuras %ue nos $er#iten
re$etir infinitas &eces o hasta %ue se cu#$la una condicin una serie de
instrucciones'
*structura Ahile / esta estructura re$ite el ciclo #ientras la condicin e&aluada
sea &erdadera en este $ri#er caso se de)e forzar a %ue la condicin se cu#$la la
$ri#era &ez $ara $oder entrar al ciclo iterati&o'
*nicializacin
_hile7condicion8M
Sentencia:
SentenciaR
SentenciaT
incre#ento
1&
P
*structura do:Ahile / esta estructura re$ite el ciclo #ientras la condicin
e&aluada sea &erdadera en este segundo caso $ode#os o)ser&ar %ue $or lo
#enos la estructura ejecuta las instrucciones antes de ser &alidada3 o sea $or lo
#enos ejecuta el ciclo una &ez'
*nicializacin
do
M
Sentencia:
SentenciaR
SentenciaT
incre#ento
P 2hile7condicion8
/jercicios
:' ,esarrolle un $rogra#a en Ja&a %ue $er#ita deter#inar si un nF#ero
al#acenado en una &aria)le es $ar o i#$ar'
R' ,esarrolle un $rogra#a en Ja&a %ue $er#ita deter#inar el no#)re del da
de la se#ana si en una &aria)le se asigna un &alor del : al 6
T' ,esarrolle un $rogra#a en Ja&a %ue $er#ita deter#inar si un nF#ero
al#acenado en una &aria)le es $ar o i#$ar'
<' ,esarrolle un $rogra#a en Ja&a %ue $er#ita deter#inar la su#a de los
nF#eros co#$rendido entre : " T?'
>' ,esarrolle un $rogra#a en Ja&a %ue $er#ita deter#inar la su#a de los
nF#eros $ares " la su#a de los nF#eros i#$ares co#$rendidos entre : "
>?
U' ,esarrolle un $rogra#a en Ja&a %ue $er#ita calcular el rea de un
triangulo rectngulo circulo' Partiendo de un #enF $rinci$al3 asu#a %ue
los &alores "a estn cargados en #e#oria
1'
6' ,esarrolle un $rogra#a en Ja&a %ue $er#ita deter#inar la cantidad de
$ersonas %ue estn entre :>CR? aos entre R? " T? entre T? ">? "
#a"ores a >? de un rango de datos estudiados %ue &an de :> a S? &alores

También podría gustarte