Вы находитесь на странице: 1из 12

Separata de Java

SEPARATA DE JAVA
Algunos sabemos que la idea de ponerle Java a este lenguaje de
programacin vino de la gran aficin de sus programadores al
af! "Java es el nombre de un tipo de caf!# originario del este de
Asia# de la isla del mismo nombre$%
De &ec&o como se sabe el logotipo de Java es una ta'a de caf!
&umeante# ( es tambi!n mu( frecuente ver granos de caf! al
lado del nombre Java en un libro de programacin%
Java surgi en )**) cuando un grupo de ingenieros de Sun
Microsystems trataron de dise+ar un nuevo lenguaje de programacin destinado a
electrodom!sticos% ,a reducida potencia de c-lculo ( memoria de los electrodom!sticos
llev a desarrollar un lenguaje sencillo capa' de generar cdigo de tama+o mu(
reducido%
Debido a la e.istencia de distintos tipos de P/s ( a los continuos cambios# era
importante conseguir una &erramienta independiente del tipo de P/ utili'ada%
Desarrollan un cdigo 0neutro1 que no depende del tipo de electrodom!stico# el cual se
ejecuta sobre una 0mquina hipottica o virtual1 denominada Java Virtual Machine
"JVM$% Es la JVM quien interpreta el cdigo neutro convirti!ndolo a cdigo particular de
la P/ utili'ada% Esto permit2a lo que luego se &a convertido en el principal lema del
lenguaje3 0Write Once, Run Everywhere1%
A pesar de los esfuer'os reali'ados por sus creadores# ninguna empresa de
electrodom!sticos se interes por el nuevo lenguaje%
Java# como lenguaje de programacin para computadores# se introdujo a finales de )**4%
,a clave fue la incorporacin de un int!rprete Java en el programa 5etscape 5avigator#
versin 6%7# produciendo una verdadera revolucin en 8nternet% Java 11 apareci a
principios de )**9# mejorando sustancialmente la primera versin del lenguaje%
Al programar en Java no se parte de cero% ualquier aplicacin que se desarrolle
0cuelga1 "o se apo(a# seg:n como se quiera ver$ en un gran n:mero de clases
pree.istentes% Algunas de ellas las &a podido &acer el propio usuario# otras pueden ser
comerciales# pero siempre &a( un n:mero mu( importante de clases que forman parte
del propio lenguaje "el !"# o !pplication "ro$rammin$ #nter%ace de Java$% Java incorpora
muc&os aspectos que en cualquier otro lenguaje son e.tensiones propiedad de
empresas de soft;are o fabricantes de ordenadores "t&reads# ejecucin remota#
componentes# seguridad# acceso a bases de datos# etc%$% Por eso es un lenguaje ideal
para aprender la inform-tica moderna# porque incorpora todos estos conceptos de un
modo est-ndar# muc&o m-s sencillo ( claro que con las citadas e.tensiones de otros
lenguajes% Esto es consecuencia de &aber sido dise+ado m-s recientemente ( por un
:nico equipo%
El principal objetivo del lenguaje Java es llegar a ser el 0ne.o universal1 que conecte a
los usuarios con la informacin# est! !sta situada en el ordenador local# en un servidor
de We&# en una base de datos o en cualquier otro lugar%
Java es un lenguaje mu( completo "se est- convirtiendo en un macro<lenguaje3 Java 1'
ten2a )6 pac=ages> Java 11 ten2a 6? ( Java 1( tiene 4*$% En cierta forma casi todo
depende de casi todo% Por ello# &a( que aprenderlo de modo iterativo3 primero una visin
mu( general# que se va refinando en sucesivas iteraciones% /na forma de &acerlo es
empe'ar con un ejemplo completo en el que (a aparecen algunas de las caracter2sticas
m-s importantes%
,a compa+2a Sun describe el lenguaje Java como 0simple, orienta)o a o&*etos,
)istri&ui)o, interpreta)o, ro&usto, se$uro, )e arquitectura neutra, porta&le, )e altas
prestaciones, multitarea y )inmico1% Adem-s de una serie de &alagos por parte de Sun

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
&acia su propia criatura# el &ec&o es que todo ello describe bastante bien el lenguaje
Java%
)%)% @/A ES JAVA 6
Java 2 (antes llamado Java 1.2 o JDK 1.2) es la tercera versin importante del lenguaje
de programacin Java.
No hay cambios conceptuales importantes respecto a Java 1.1 (en Java 1.1 s los hubo
respecto a Java 1.0), sino extensiones y ampliaciones, lo cual hace que a muchos
efectos sea casi lo mismo trabajar con Java 1.1 o con Java 1.2.
os programas desarrollados en Java presentan diversas ventajas frente a los
desarrollados en otros lenguajes como !"!##. a ejecucin de programas en Java
tiene muchas posibilidades$
%jecucin como aplicacin independiente (Stand-alone Application), ejecucin
como applet, ejecucin como servlet, etc.. &n applet es una aplicacin especial
que se ejecuta dentro de un navegador o bro'ser (por ejemplo Netscape
Navigator o Internet Explorer) al cargar una p(gina )*+ desde un servidor
Web. %l applet se descarga desde el servidor y no requiere instalacin en el
ordenador donde se encuentra el bro'ser. &n servlet es una aplicacin sin
interfase gr(fica que se ejecuta en un servidor de ,nternet. a ejecucin como
aplicacin independiente es an(loga a los programas desarrollados con otros
lenguajes.
-dem(s de incorporar la ejecucin como Applet, Java permite f(cilmente el
desarrollo tanto de arquitecturas cliente.servidor como de aplicaciones
distribuidas, consistentes en crear aplicaciones capaces de conectarse a otros
ordenadores y ejecutar tareas en varios ordenadores simult(neamente,
repartiendo por lo tanto el trabajo. -unque tambi/n otros lenguajes de
programacin permiten crear aplicaciones de este tipo, Java incorpora en su
propio AI estas funcionalidades.
0.1. % %N*23N2 4% 4%5-3322 4% 6-7-
%xisten distintos programas comerciales que permiten desarrollar cdigo Java. a
compa8a S!n, creadora de Java, distribuye gratuitamente el Java"t#$ Develop#ent Kit
(JDK). 5e trata de un conjunto de programas y libreras que permiten desarrollar,
compilar y ejecutar programas en Java.
,ncorpora adem(s la posibilidad de ejecutar parcialmente el programa, deteniendo la
ejecucin en el punto deseado y estudiando en cada momento el valor de cada una de
las variables (es el denominado Deb!gger). !ualquier programador con un mnimo de
experiencia sabe que una parte muy importante (muchas veces la mayor parte) del
tiempo destinado a la elaboracin de un programa se destina a la detecci%n &
correcci%n de errores. %xiste tambi/n una versin reducida del JDK, denominada J'E
(Java '!nti#e Environ#ent) destinada 9nicamente a ejecutar cdigo Java (no permite
compilar).
os IDEs (Integrated Develop#ent Environ#ent), tal y como su nombre indica, son
entornos de desarrollo integrados. %n un mismo programa es posible escribir el cdigo
Java, compilarlo y ejecutarlo sin tener que cambiar de aplicacin. -lgunos incluyen una
herramienta para reali:ar Deb!g gr(ficamente, frente a la versin que incorpora el JDK
basada en la utili:acin de una consola (denominada habitualmente ventana de
comandos de +5.425, en Windo(s N)*+,*+-) bastante difcil y pesada de utili:ar.
%stos entornos integrados permiten desarrollar las aplicaciones de forma mucho m(s
r(pida, incorporando en muchos casos libreras con co#ponentes ya desarrollados, los
cuales se incorporan al proyecto o programa.

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
!omo inconvenientes se pueden se8alar algunos fallos de compatibilidad entre
plataformas y ficheros resultantes de mayor tama8o que los basados en clases
est(ndar.
0.1.0. %l compilador de 6ava
5e trata de una de las herramientas de desarrollo incluidas en el JDK. 3eali:a
un an(lisis de sintaxis del cdigo escrito en los ficheros fuente de Java (con
extensin ../ava). 5i no encuentra errores en el cdigo genera los ficheros
compilados (con extensin ..class). %n otro caso muestra la lnea o lneas
errneas. %n el JDK de S!n dicho compilador se llama /avac.exe. *iene
numerosas opciones, algunas de las cuales varan de una versin a otra. 5e
aconseja consultar la documentacin de la versin del JDK utili:ada para
obtener una informacin detallada de las distintas posibilidades.
0.1.1. a 6ava 7irtual +achine
a existencia de distintos tipos de procesadores y ordenadores llev a los
ingenieros de S!n a la conclusin de que era muy importante conseguir un
soft'are que no dependiera del tipo de procesador utili:ado. 5e plantea la
necesidad de conseguir un cdigo capa: de ejecutarse en cualquier tipo de
m(quina. &na ve: compilado no debera ser necesaria ninguna modificacin
por el hecho de cambiar de procesador o de ejecutarlo en otra m(quina. a
clave consisti en desarrollar un cdigo ;neutro< el cual estuviera preparado
para ser ejecutado sobre una ;#01!ina 2ipot3tica o virt!al<, denominada Java
4irt!al 5ac2ina (J45). %s esta J45 quien interpreta este cdigo neutro
convirti/ndolo a cdigo particular de la !=& o chip utili:ada. 5e evita tener que
reali:ar un programa diferente para cada !=& o plataforma.
a J45 es el int/rprete de Java. %jecuta los ;b&tecodes< (ficheros compilados
con extensin ..class) creados por el compilador de Java (/avac.exe). *iene
numerosas opciones entre las que destaca la posibilidad de utili:ar el
denominado JI) (J!st-In-)i#e 6o#piler), que puede mejorar entre 0> y 1>
veces la velocidad de ejecucin de un programa.

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
*,=25 4% 4-*25
a siguiente tabla muestra los ? tipos primitivos en 6ava. -l igual que sus lenguajes
antecesores ! y !##, 6ava requiere que todas las variables tengan un tipo. %s por esta ra:n
que 6ava se conoce como un lenguaje fuertemente tipificado.
!uando se declaran variables de alguno de los tipos primitivos fuera de un m/todo, se
les asignan autom(ticamente valores predeterminados, a menos que se inicialicen en forma
explcita. as variables de los tipos char, byte, short, int, long, float y double reciben el valor de
> de manera predeterminada. as variables de tipo bolean reciben el valor de false de manera
predeterminada.
*ipo *ama8o en bits 7alores
boolean true o false
!har 0@ > hasta @AABA
Cyte ? .01? a #01D
5hort 0@ .B1D@? a B1D@D
,nt B1 .10EDE?B@E? hasta #10EDE?B@ED
long @E .F11BBD1>B@?AEDDA?>? hasta #F11BBD1>B@?AEDDA?>D
Gloat B1 3ango negativo$
.B.E>1?1BE@@B?A1??@%#B? hasta .0.E>01F?E@EB1E?0D>D%.EA
3ango positivo$
0.E>01F?E@EB1E?0D>D%.EA hasta
B.E>1?1BE@@B?A1??@%#B?
4ouble @E 3ango negativo$
.0.DFD@FB0BE?@1B0AD%#B>? hasta .E.FE>@A@EA?E01E@AEE%.B1E
3ango positivo$
E.FE>@A@EA?E01E@AEE%.B1E hasta 0.DFD@FB0BE?@1B0AD%#B>?
=rograma0.java
class =rograma0
H
public static void main(5tring argsIJ)
H
5ystem.out.println(K%sta es una pruebaK)L
M
M
5alida$
!omentarios$
*odo programa en 6ava consiste de, cuando menos, una declaracin de clase que el
programador debe de definir. %stas clases se conocen como clases definidas por el
programador o clases definidas por el usuario. a palabra clave class introduce una
declaracin de clase en 6ava, la cual debe ir seguida inmediatamente por el nombre de la
clase.
a lnea.
public static void main(5tring argsIJ)
%s el punto de inicio de toda aplicacin en 6ava. os par/ntesis despu/s de main
indican que /ste es un bloque de construccin del programa, al cual se le llama m/todo. as
declaraciones de clases en 6ava generalmente contienen uno o m(s m/todos.

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
%n una aplicacin en 6ava, slo uno de esos m/todos debe llamarse main y debe definirse
como lo muestra el primer programa, de no ser as, el int/rprete java no ejecutar( la aplicacin.
a palabra clave void indica que este m/todo reali:ar( una tarea pero no devolver( ning9n tipo
de informacin cuando complete su tarea.
5ystem.out se conoce como el objeto de salida est(ndar, permite a las aplicaciones en
6ava mostrar conjuntos de caracteres en la ventana de comandos, desde la cual se ejecuta
la aplicacin en 6ava.
=rograma1.java
class =rograma1
H
public static void main(5tring argsIJ)
H
int aN0>L
int bNB>L
int cNa#bL
5ystem.out.println(KcNK#c)L
""una alternativa a este cdigo es
"O int a,b,cL
aN0>L
bNB>L
cNa#bL
5ystem.out.println(KcNK#c)L
O"
M
M
=rogramaB.java
class =rogramaB
H
public static void main(5tring argsIJ)
H
int aNDL
int bNBL
int s,r,m,d,moduloL
sNa#bL
rNa.bL
mNaObL
dNa"bL
moduloNaPbL
5ystem.out.println(Ka suma esNK#s)L
5ystem.out.println(Ka resta esNK#r)L
5ystem.out.println(Ka multiplicacion esNK#m)L
5ystem.out.println(Ka division esNK#d)L
5ystem.out.println(K%l residuo esNK#modulo)L
M
M
5alida$

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
=rogramaE.java
class =rogramaE
H
public static void main(5tring argsIJ)
H
double aND.EABL
double bNB.A@DL
double s,r,m,dL
sNa#bL
rNa.bL
mNaObL
dNa"bL
5ystem.out.println(Ka suma esNK#s)L
5ystem.out.println(Ka resta esNK#r)L
5ystem.out.println(Ka multiplicacion esNK#m)L
5ystem.out.println(Ka division esNK#d)L
M
M
5alida$
=rogramaA.java
class =rogramaA
H
public static void main(5tring argsIJ)
H
5tring aNK6avaKL
int bN0>L
double cNB.0E0@L
float d0NA.@GL
float d1N(float)E.1L
byte eNBAL
boolean fNtrueL
char gNQaQL
short hN0>>L
5ystem.out.println(KaNK#a#K bNK#b#K cNK#c)L
5ystem.out.println(Kd0NK#d0#K d1NK#d1)L
5ystem.out.println(KeNK#e#K fNK#f#K gNK#g#K hNK#h)L
M
M
5alida$
%N*3-4- 4% 4-*25
import java.util.5cannerL

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
public class suma1n H
public static void main(5tring argsIJ)
H
int a,b,cL
"O aN0>L
bNB>LO"
5canner tecladoNne' 5canner(5ystem.in)L
5ystem.out.print(KN0NK)L
aNteclado.next,nt()L
5ystem.out.print(KN1NK)L
bNteclado.next,nt()L
cNa#bL
5ystem.out.println(KcNK#c)L
M


M
sexoNteclado.next().char-t(>)L "",ngreso de letras
%5*3&!*&3- 5%%!*,7- 5,+=%
4ividen el rumbo de ejecucin de los programas en 1 opciones.
%jemplo$ +"G, 5"N, -=32C-42"4%5-=32C-42, etc.
=rograma en 6ava
import java.util.5cannerL
public class aprobado H
public static void main(5tring argsIJ)
H
float promfinalL

Ing. Fernando Infante Saavedra
Docente del Curso
Condici
n
Accin S1 Accin S2 Accin S3 Accin Sn .....
Separata de Java
5canner tecladoNne' 5canner(5ystem.in)L
5ystem.out.print(K,ngresa el =romedio Ginal$K)L
promfinalNteclado.nextGloat()L
if (promfinalRN0>.A) H
5ystem.out.println(K-probadoK)LM
else H
5ystem.out.println(K4esaprobado K)LM
M

M
%5*3&!*&3- 5%%!*,7- +&*,=%
4ividen el rumbo de ejecucin de los programas en m(s de 1 alternativas.
%j.$ !-33%3-5 =32G%5,2N-%5, !,&4-4%5, %5*-42 !,7,, etc.
=rograma en 6ava
import java.util.5cannerL
public class formapago H
public static void main(5tring argsIJ)
H
char formapagoL
5canner tecladoNne' 5canner(5ystem.in)L
5ystem.out.print(K,ngresa la Gorma de =ago$K)L
formapagoNNteclado.next().char-t(>)L
5ystem.out.println(KcNK#c)L
if (promfinalRN0>.A) H
5ystem.out.println(K-probadoK)LM
else H
5ystem.out.println(K4esaprobado K)LM
M

M
%5*3&!*&3-5 3%=%*,*,7-5
0. 4efinicin$ %s una estructura de mayor nivel que permite crear
la:os de repeticin de lneas de sentencias.

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
as estructuras repetitivas o bucles permiten repetir una o varias acciones un n9mero
determinado de veces. !ada una de las repeticiones se conoce como iteracin.
1. &sos
5e debe utili:ar cuando se repiten varias lneas de sentencias.
,ngresar -pellido0
,ngresar -pellido1
,ngresar -pellidoB
S
S
S
,ngresar -pellidoB>
,ngresar -pellido
B. ,mportancia
3educe el tama8o de la aplicacin es decir la cantidad de lneas.
3educe la complejidad.
%ficiencia$ %spacio, *iempo y =rocesador.
E. *ipos$ %l tipo de estructura se elige de acuerdo a la naturale:a del problema, N2 se
decide arbitrariamente ni porque se desea, del mismo problema se deducir( si se conoce o
no el n9mero de repeticiones.
E.0. %structura 3epetitiva Ginita$
o -quellas donde se conoce el n9mero o cantidad de elementos, repeticiones o
iteraciones.
o 5e utili:a la estructura =-3- (7or).
o %jemplo$ %l n9mero de alumnos de una asignatura, Notas de -lumnos de +/todos
-lgortmicos 1, =ago de )oras de docentes, ibros de biblioteca, etc.
public class !%jemplo1E H
public static void main(5tringIJ args)
H
for (int i N 0L i TN 0>L i##)

Ing. Fernando Infante Saavedra
Docente del Curso
Se repite 30
veces
Se
reduce
Separata de Java
5ystem.out.println(KUtK # i)L
M
M
E.1. %structura 3epetitiva ,nfinita$
o -quellas donde no se conoce el n9mero o cantidad de elementos, repeticiones o
iteraciones.
o 5e utili:a las estructuras$ +,%N*3-5 ('hile) y )-!%3"+,%N*3-5 (do"'hile).
o %jemplo$ %l n9mero de postulantes a un examen de admisin, =acientes de un
m/dico, !lientes de una tienda, usuarios de biblioteca, etc.
public class !%jemplo10 H
public static void main(5tringIJ args)
H
int numero N >L
do H
numero N numero # 0L
5ystem.out.println(KUtK # numero)L
M
'hile (numero T 0>)L
5ystem.out.println(KUtGin del
programaK)L
M
M

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
public class !%jemplo1> H
public static void main(5tringIJ args)
"" (utili:ando for) suma de pares e impares
"" de los numeros comprendidos entre 0 ... 1>>
H
int numero N >, resultado N >L
int cuentaNN >L
numero N ,nteger.parse,nt(argsI>J)L
5ystem.out.println(K7isuali:ar la tabla del n9mero$ K #
numero)L
'hile (cuentaN TN 01) H
resultado N cuentaN O numeroL
5ystem.out.println(cuentaN # K O K # numero # K N K #
resultado)L
cuentaN##L
M
M
M
A. )erramientas$ 5e deben utili:ar dentro del la:o de repeticin.
A.0. !ontador$ =ermite contabili:ar o enumerar la cantidad de elementos o de
repeticiones.
NN> (5e iniciali:a)
S
S
S
NNN#0 (4entro de la repeticin)
A.1. -cumulador$ =ermite determinar la suma o total de un grupo de elementos o
datos.
5&+-N> (5e iniciali:a)
S
S
S
5&+-N5&+-#valor (4entro de la repeticin)
A.B. +(ximo$ =ermite determinar el mayor valor de un grupo de elementos o datos.
+-V23N> (5e iniciali:a)
S
S

Ing. Fernando Infante Saavedra
Docente del Curso
Separata de Java
S
5i valorR+-V23
%ntonces +-V23 N valor (4entro de la repeticin)
A.E. +nimo$ =ermite determinar el menor valor de un grupo de elementos o datos.
+%N23NFFFF (5e iniciali:a)
S
S
S
5i valorR+%N23
%ntonces +%N23 N valor (4entro de la repeticin)
@. 4iferencias entre los tipos de %structuras 3epetitivas ,nfinitas$
0. &no es +ientras y el otro )acer"+ientras
1. %l +ientras lleva la !ondicin de 3epeticin antes de empe:ar el la:o de repeticin, el
)acer"+ientras tiene la !ondicin de 3epeticin al final del la:o de repeticin.
B. %l +ientras ejecuta Ninguna o varias veces el la:o de repeticin, el )acer"+ientras
ejecuta por lo menos &na o varias veces el la:o de repeticin.
E. %l +ientras tiene un 4iagrama de Glujo diferente al del )acer"+ientras.

Ing. Fernando Infante Saavedra
Docente del Curso

Вам также может понравиться