Ko= KAN
} AEN
Ws NESS Se
El entorno de programaci6n - Sintaxis
Estructuras de control
Elementos -CURSO DE
TSM
Tae
an -sintaxis
elentorno de programact
_estructuras de control
ElementosProgramacion en
Java @
CaaS
Titulo: Programacién en Java / Autor: Carlos Arroyo Diaz
Coordinador editorial: Miguel Lederkremer / Edicién: Claudio Peiia
Maquetado: Marina Mozzetti / Coleccién: USERS ebooks - LPCU287
Copyright © MMXIX. Es una publicacién de Six
Ediciones. Hecho el depésito que marca la ley
11723. Todos los derechos reservados. Esta
publicacién no puede ser reproducida ni en todo
niien parte, por ningtin medio actual o futuro, sin
el permiso previo y por escrito de Six Ediciones.
Su infraccién esta penada por las leyes 11723
y 25446. La editorial no asume responsabilidad
alguna por cualquier consecuencia derivada de
la fabricacién, funcionamiento y/o utiizacién
de los servicios y productos que se describen
y/o analizan. Todas las marcas mencionadas
en este libro son propiedad exclusiva de sus
respectivos duefios. Libro de edicién argentina,
www.redusers.comACERCA DE ESTE CURSO
Java es un lenguaje de programacién que sigue afianzandose como un
estandar de la web y, por eso, afio tras afio, aparece en el tope de las
biisquedas laborales de programadores.
Es por esto que hemos creado este curso de Programacién en Java,
donde encontraran todo lo necesario para iniciarse o profundizar sus
conocimientos en este lenguaje de programacién.
El curso esta organizado en cuatro voliimenes, orientados tanto a quien
recién se inicia en este lenguaje, como a quien ya esta involucrado y
enamorado de Java.
En el primer volumen se realiza una revisin de las caracteristicas de
este lenguaje, también se entregan las indicaciones para instalar el
entorno de desarrollo y, posteriormente, se anal
basicos de la sintaxis y el uso basico de las estructuras de control.
an los elementos
En el segundo volumen se presentan las clases en Java, se realiza una
introduccién a los conceptos asociados a la Programaci6n Orientada a
Objetos y también se profundiza en el uso de la herencia, colaboracion
entre clases y polimorfismo.
El tercer volumen contiene informacién sobre el uso de las clases
abstractas ¢ interfaces, el manejo de excepciones y la recursividad.
Finalmente, en el cuarto volumen se ensefia el uso de las estructuras
de datos dinamicas, el acceso a bases de datos y la programaci6n Java
para Android,
Sabemos que aprender todo lo necesario para programar en Java en tan
solo cuatro volimenes es un tremendo desafio, pero conforme vamos
avanzando, el camino se va allanando y las ideas se tornan mas claras.
iSuerte en el aprendizaje!
2 www.redusers.comSUMARIO DEL VOLUMEN |
0
02
03
UN Poco DE HisToRIA / 6
Pasado, presente y futuro
LENGUAJES DE PROGRAMACION / 8
Evolucién / Clasificacién
Enroaue atcoritmco / 13
Algoritmos / Pseudacédigo / Diagramas de flujo
JAVA / 20
INsTALACION Det JDK / 26
Instalar el JOK de JAVA / Configurar el path de JAVA
ENTORNOS DE DESARROLLO / 31
Instalacién del IDE
SINTAXIS Y REGLAS / 36
Sintaxis basica / Identificadores / Secuencia de escape / Comentarios
NuesTRO PRIMER PROGRAMA / 40
Creacién de un proyecto en Netbeans
Tiros be patos / 48
ENTRADA Y SALIDA DE DATOS / 49
Variastes / 52
Ambito / Nivel de acceso / Ciclo de vida
Constantes / 57
Operavores / 58
Orden de evaluacién de los operadores
Expresiones ReGULARES / 62
Simbolos comunes / Metacaracteres / Cuantificadores
Metopos / 66
Construccién de método
EsTRUCTURAS DE CONTROL / 72
Estructuras secuenciales / Estructuras de selecci6n / Estructuras iterativas
VarianTes DEL BUCLE FOR / 87
ARRAYS / 94
Tipos de arreglos / Ordenar en ARRAY / ARRAYS en método
www.redusers.com 3PROLOGO
Java es un lenguaje maduro y robusto que, desde su nacimiento en
el alo 1995, ha demostrado que vino para quedarse y ha logrado
evolucionar hasta convertirse en el lenguaje mas utilizado en el
mundo tecnolégico.
Durante nuestro aprendizaje de cualquier lenguaje de programacion
podemos encontrarnos con variados libros, pero solo a través de la
experimentacién y escudrifiando las entrafias de la Web (foros, blogs,
under sites), podremos obtener los conocimientos necesarios para
enfrentar el aprendizaje de mejor forma.
Mientras recorremos este camino, contar con un curso como este
es fundamental pues se presenta como un compendio de todo
lo que necesitamos para enfrentar un lenguaje de programacién,
permitiéndonos lograr, a través de ejemplos concretos, un mejor
aprendizaje de los distintos temas necesarios para programar en Java.
Desde el primer momento somos optimistas en que este curso sera
para ustedes un desafio muy significativo y, por otro lado, lograra
convertirse en una excelente guia del lenguaje Java.
Carlos Arroyo Diaz
Acerca del autor
Carlos Arroyo Diaz es programador de profesién, escritor especializado en
tecnologias y docente por vocacién. Se desempefia desde hace mas de 20
afios como docente en Informatica General y en los titimos 10 aos ensefia
programacién en Java y Desarrollo Web. También se ha desempefiado como
mentor docente en el area de Programacién en varios proyectos del Ministerio
de Educacién de la Ciudad Autonoma de Buenos Aires, ensefiando a programar
a grupos de jévenes.
4 www.redusers.coméPor qué un lenguaje de programacin tiene tanta importancia
en la informatica? Todo lo concerniente a las tecnologias es un
ambito amplio donde estan involucradas distintas areas: redes,
internet, hardware, comunicaciones, fisica, l6gica; sin embargo,
todas confluyen de alguna manera en los cédigos binarios, que
hacen que las computadoras realicen acciones que usamos a
diario. Por esta razon, los lenguajes son tan relevantes.1. INTRODUCCION ees
UN POCO DE HISTORIA
James Gosling, un programador de Sun Microsystems, crea en
1995 el lenguaje Java, que, en sus origenes, no se llamé de esa
forma y, tras ciertos cambios, evolucioné hasta llegar a lo que
hoy conocemos.
Al ser un lenguaje de programacién multipropésito con el
que podemos realizar cualquier tipo de programa, su uso se ha
extendido enormemente. Java se ha hecho muy famoso por una de
sus principales caracteristicas: es un lenguaje independiente de la
plataforma, Eso quiere decir que, si hacemos un programa en Java,
podra funcionar en cualquier computadora del mercado. Esto es
una ventaja significativa para los desarrolladores de software, pues
antes tenian que crear un programa para cada sistema operativo,
como Windows, Linux, IOS, etcétera
Java es independiente de la
plataforma porque tiene una maquina
virtual para cada sistema; esta maquina
funciona como puente entre el sistema
operativo y el programa en Java, y
posibilita que este tiltimo se lea y se
ejecute a la perfeccion.
Figura 1. En esta imagen vemos a James Gosling,
el creador del lenguaje Java
Origen del nombre
Existen varias historias sobre el origen del nombre de este lenguaje. Uno de los
relatos en torno al nombre es que, en un principio, se llamé Oak, pero lo cambiaron
pues ya existian derechos sobre ese nombre. También se especula que es el
nombre de un café al que los fundadores concurrian 0 que se trata de las iniciales
de los desarrolladores. Ademés, hay quienes conjeturan que es un nombre aleatorio
devenido de un listado del pizarrén en que los creadores iban escribiendo los
nombres propuestos.
6 wwrw.redusers.comos JAVA
Pasado, presente y futuro
En sus comienzos, Java fue concebido para ser utilizado en todo
tipo de electrodomésticos; sin embargo, esta idea inicial no lleg6 a
buen puerto. En ese momento, uno de los programadores, en vez de
abandonar el proyecto, definié una nueva direccién, pero esta vez con
un objetivo mas ambicioso: orientarlo a Internet, lo que para esa época
sonaba como una locura, pues se trataba de una tecnologia que daba
sus primeros pasos.
A partir de entonces, logré ser integrado al navegador Netscape
(el mas importante del momento), donde se encargaba de ejecutar
programas o applets dentro de una pagina web.
Con el paso de los afios, Java se convirtié en un lenguaje potente,
seguro y universal, gracias a la posibilidad de usarlo en cualquier
plataforma y por su cardcter gratuito.
Actualmente, Java se utiliza para un amplio abanico de
posibilidades, y casi todo lo que se puede hacer en cualquier otro
lenguaje es posible lograrlo también en Java, muchas veces, con mas
ventajas. Para lo que aqui nos interesa, con Java podemos programar
paginas web dindmicas con accesos a
bases de datos, utilizar XML y aprovechar
diversos tipos de conexién de red entre
cualquier sistema, entre otras funciones.
En general, Java sera util para cualquier
aplicacion que deseemos desarrollar, por
ejemplo, programas con acceso mediante
la Web, y apps para sistemas moviles,
como Android, lo que en la actualidad se
encuentra en pleno auge.
Podemos concluir que Java es un
lenguaje que Ileg6 para quedarse, de eso
no nos cabe ninguna duda; siempre ha
sabido responder a los incesantes cambios
tecnolégicos y ha vuelto sobre sus pasos
cuando fue necesario. Ahora apunta al
mundo de los sistemas méviles; esto es
importante pues las estadisticas indican Figura 2. Duke, la curiosa mascota
que el uso de Android llega a casi un 70% que por muchos afios acompafié a las
de los teléfonos de este tipo enel mundo. —_publicaciones de Java
www.redusers.com 71, INTRODUCCION ea
LENGUAJES DE PROGRAMACION
Un lenguaje de programacién se utiliza para escribir programas; estos
constan de secuencias de instrucciones que se codifican y, a su vez,
son traducidos para que las computadoras los entiendan.
A las secuencias traducidas, se las denomina lenguaje de
maquina o lenguaje de bajo nivel, que es el lenguaje nativo de
la computadora. Tales instrucciones, dificiles para los humanos,
no son mas que secuencias de ceros y unos, o patrones de bits. En
consecuencia, para desarrollar programas, se necesitan lenguajes de
programacién amigables que nos permitan interactuar directamente
con una computadora.
Cada lenguaje de programacién incluye un conjunto de instrucciones
que la computadora puede entender directamente en su cdigo de
mAquina. Las instrucciones basicas y comunes en casi todos los
lenguajes de programacion son las siguientes:
INSTRUCCIONES DE ENTRADA Y SALIDA
Instrucciones de transferencia de informacién entre dispositivos periféricos
y la memoria principal.
INSTRUCCIONES DE CALCULO
Se trata de instrucciones para que la computadora pueda realizar
‘operaciones aritméticas.
INSTRUCCIONES DE CONTROL
Son aquellas que modifican la secuencia de la ejecucién del programa.
Por una parte, los lenguajes de bajo nivel se califican como
lenguajes de maquina o lenguajes ensambladores. Por otra parte,
los lenguajes de alto nivel permiten expresar los algoritmos
de una forma adecuada para que sea entendida por los humanos
En este punto es necesario tener en cuenta que las computadoras
solo ejecutan programas escritos en lenguajes de bajo nivel; los
programas de alto nivel tienen que traducirse antes de ejecutarse,
y esta traduccién leva tiempo, lo que constituye una pequefia
desventaja para los lenguajes de alto nivel.
8 www.redusers.comos JAVA
Aun asi, las ventajas de los lenguajes
de alto nivel son enormes. En primer
lugar, la programacién en lenguajes de
este tipo es mucho més facil; escribir
programas con ellos toma menos
tiempo, porque son mas cortos y mas
faciles de leer; y es mas probable que
estos programas sean correctos.
En segundo lugar, los lenguajes de alto
nivel son portables, lo que significa que
pueden ejecutarse en tipos diferentes de
computadoras sin modificacion alguna
© con pocas modificaciones. En cambio, Figura 3. Fortran: antiguo lenguaje
los programas escritos en lenguajes de de programacién ya casi en desuso.
bajo nivel solo pueden ser ejecutados
en un tipo de computadora y deben rescribirse para ejecutarlos en otra
maquina, Debido a estas ventajas, casi todos los programas se escriben
en un lenguaje de alto nivel, y los de bajo nivel solo se usan para unas
pocas aplicaciones especiales.
Existen dos tipos de programas que traducen lenguajes de alto nivel
a lenguajes de bajo nivel: intérpretes y compiladores.
Un intérprete lee un programa de alto nivel y lo ejecuta; esto
significa que lleva a cabo lo que indica el programa; de esta forma,
traduce el programa poco a poco, leyendo y ejecutando cada
comando. Un compilador lee el programa y lo traduce todo al
mismo tiempo antes de ejecutar cualquiera de las instrucciones.
En este caso, el programa de alto nivel se lama cédigo fuente,
y el programa traducido se denomina cédigo objeto o cédigo
ejecutable. Una vez compilado el programa, puede ejecutarse
repetidamente sin volver a traducirlo.
Codigo fuente ——> —Intérprete ——>
Figura 4. En este esquema vemos la funcion del intérprete,
wurw.redusers.com 31. INTRODUCCION ea
1970
Evolucién
La historia de los lenguajes de programacién es relativamente reciente,
(unos 60 afios). Ada Byron, condesa de Lovelace (1815-1852), es
considerada la primera programadora de la historia, pues intenté
interpretar la maquina analitica de Charles Babbage y, para esto, desarroll6,
en 1843, un algoritmo que podia ser utilizado en ella.
Desde 1954 hasta la actualidad, se han documentado mas de 2.500
lenguajes de programacion. Entre 1952 y 1972 (la primera época de los
lenguajes de programacién), se desarrollaron alrededor de 200 lenguajes.
De ellos, solo una decena fueron realmente significativos y tuvieron
influencia en el desarrollo de lenguajes posteriores, por ejemplo:
> Fortran (Formula Translation)
> LISP (List Processor)
> COBOL (Common Business-Oriented Language)
Los principales usos de estos tres lenguajes fueron aplicaciones para
supercomputadoras, desarrollo de la inteligencia artificial y software
empresarial
A continuacién, realizaremos un breve recorrido para ver como
fueron apareciendo los lenguajes de programacién y cuanta influencia
tuvieron en los paradigmas modernos de desarrollo de software.
Un hito en esta evolucién es la llegada, en los afios 60, de Algol, un
lenguaje imperativo que no tuvo un gran éxito, pero sirvié de influencia
para importantes lenguajes que vinieron después, como C.
Ya por los 70, aparece el lenguaje Pascal, llamado asi en honor al
matematico y fisico Blas Pascal; tiene un objetivo mas bien educativo pues
se utiliza para el aprendizaje de las estructuras de datos. También en los
70, se crea un lenguaje que sera fundamental para el propésito de este
curso: Smalltalk y que introduce el paradigma de orientacion a objetos.
En 1972 llega un lenguaje padre: C. Es desarrollado por el programador
Dennis Ritchie, de los Laboratorios Bell. Se trata de un lenguaje de bajo
nivel, creado para propésitos generales y con el que es reescrito el
sistema Unix.
www.redusers.comLuego de C, vamos a saltarnos hasta 1983 en el que llega C++, que
desciende de C, pero ya orientado a objetos; como sabemos, se trata
de un paradigma que ejerce una influencia profunda en los lenguajes
modernos. Ese mismo afio aparece Objetive-C, que se utilizaba para
programar todo lo relacionado con Apple.
En el afio 1987 se crea Perl, un poderoso lenguaje de alto nivel,
conocido por su versatilidad, que ofrece un abanico interesante de
sos, como aplicaciones de base de datos, administracién de sistemas,
programacién web y programacién de graficos.
En 1991 llega Python, un lenguaje con muchos propésitos, muy
utiizado en la actualidad. Empresas como Google y Spotify, entre otras,
lo incluyen dentro de sus lineas de cédigo.
Ya en 1993 nace un lenguaje que es considerado un balsamo para los
desarrolladores web: Ruby. Se trata de un lenguaje bastante versétil y con
tn framework propio (Ruby on rails). Twitter, Groupon y Hulu lo utiizan.
Posteriormente, en 1995 nace Java. Este mismo afio hace su aparicién
PHP, creado por el groenlandés Rasmus Lerdorf, muy utilizado para la
creacién de paginas web dinamicas. Encontramos ejemplos de su uso en
Facebook, Wikipedia, Digg, WordPress y Joomla.
Cabe resaltar que, en estos afios, también aparece JavaScript (JS),
creado por un exdesarrollador de Netscape. JS ha logrado un importante
posicionamiento entre los desarrolladores por las incontables bondades
en el desarrollo de paginas web, por ejemplo, paginas dinamicas para el
envio y validacién de formularios, interactividad, animacién, seguimiento
de actividades de usuario, etcétera; es utilizado por Gmail, Photoshop y
Mozilla Firefox.
Ademis de los lenguajes que hemos citado
en orden cronolégico, debemos tener en
cuenta que aparecieron muchos otros, pero en
esta ocasién hemos mencionado solo los mas
relevantes.
wuw.redusers.com
=
oo Ss
5
a} g1. INTRODUCCION ea
Clasificacio6n
Entre los lenguajes de programacion, encontramos dos grandes grupos:
los lenguajes imperativos y los declarativos.
Dentro de los lenguajes imperativos mencionaremos los siguientes:
Secuenciales: por ejemplo, Ensamblador.
Estructurados: por ejemplo, BASIC.
Procedurales: como C 0 Pascal
Orientados a objetos: por ejemplo, Java, C++, Ruby.
vvvy
Dentro de los lenguajes declarativos encontramos la siguiente clasificacién:
v
Logicos: como Prolog.
>» Funcionales: por ejemplo, Haskell, Erlang, LISP.
También es posible clasificar los lenguajes de programacién por el
tipado, es decir, si un lenguaje es fuerte o débilmente tipado, tema que
profundizaremos en el capitulo.
ert D cjecutor | cédigo I Ejecutor
Salida
read ered
Se ae
Figura 5. En este diagrama podemos ver la funcién de un compilador desde el codigo fuente
hasta la salida.
Cédigo fuente
Se trata de un texto escrito en un lenguaje de programacién especifico y que puede
ser leido por un programador. Debe traducirse a lenguaje maquina para que pueda
ser ejecutado por la computadora o a bytecode para que pueda ser ejecutado por
un intérprete. Este proceso se denomina compilacién. Acceder al cédigo fuente
de un programa significa acceder a los algoritmos desarrollados por sus creadores,
se trata de la Unica manera de modificar eficazmente un programa.
12 www.redusers.comaes
JAVA
ENFOQUE ALGORITMICO
Sin importar el lenguaje de programacion que decidamos utilizar,
existen diferentes fases en el proceso de programacién, esto se conoce
como ciclo de vida de un software. Para enfrentar este ciclo de vida,
debemos seguir una serie de fases que son obligatorias; por esta razon,
es necesario tenerlas en cuenta y acostumbrarnos a ellas, veamoslas
ANALISIS DEL PROBLEMA
El problema se analiza teniendo en cuenta
los requerimientos del cliente, previendo
alcances y dimensionandolo con la
anticipacion necesaria.
DISENO DEL ALGORITMO
Es el momento de recurtir al lapiz y
al papel, o tal vez a algin software
adecuado para realizar los algoritmos
necesarios que solucionen el problema.
CODIFICACION
Llamada implementacién de
los algoritmos; para esto se
utiliza la sintaxis de un lenguaje de
programacién y, como resultado,
obtendremos el cédigo fuente.
COMPILACION Y EJECUCION
Mediante diversos mecanismos, en esta
etapa se procede a compilar y ejecutar el
programa,
VERIFICACION
En esta etapa se ejecutan las pruebas
de rigor para verificar el programa; si
aparecen errores 0 bugs, pasamos a la
fase siguiente.
DEPURACION
En caso de encontrar errores, que
pueden ser de distinta indole, en
esta etapa se procede a corregirlos
(debugging).
MANTENIMIENTO
Una vez lanzado el programa, debemos
tener en cuenta que es probable
que en algin momento requiera ser
actualizado 0 modificado en alguna de
sus instancias.
DOCUMENTACION
En todas las fases de la programacién se
deben escribir los manuales del usuario
(ademés de los comentarios dentro del
cédigo) y también las normas adecuadas
para su correcto mantenimiento,
En esencia, el enfoque algoritmico enfatiza la importancia de seguir una
secuencia ordenada de pasos o actividades, para, en este caso, enfrentar el ciclo
de vida de un software.
www.redusers.com
1B1. INTRODUCCION ea
14
Algoritmos
La palabra algoritmo es una traducci
en honor a un astronomo y matematico arabe que trabajo en la
manipulacién de numeros y ecuaciones en el siglo IX.
n del arabe Alkh6-warizmi,
Un algoritmo es la manera en que resolvemos un problema mediante una
serie de pasos precisos, definidos y finitos. Las formas en que utilizamos
los algoritmos se denominan métodos algoritmicos, a diferencia de los
métodos heuristicos, que implican algtin juicio 0 interpretacion. Veamos
un ejemplo sencillo en el que, sin darnos cuenta, aplicamos algoritmos.
‘Supongamos que queremos preparar una cena especial. Nos
esmeramos para tener a la mano todos los ingredientes, para lo cual
preparamos un listado y, si es necesario, vamos al supermercado
para comprar los elementos. Una vez que tenemos todo, empezamos
a seguir la receta (si no la tenemos en la cabeza); para ello, antes hay
que disponer de los utensilios que utilizaremos (sartenes, bol, cuchillo,
etcétera). Procedemos a cortar los distintos ingredientes, verificamos
los condimentos y, para terminar, cocinamos.
Al final, una vez comprobada la correcta coccién y seguros de que
los sabores sean los esperados (corregimos con sal, por ejemplo), sera
el momento en que habremos terminado el proceso.
En este caso, podemos ver que hemos seguido un método
algoritmico para dar solucién a un problema inicial.
Pero, para enfrentar la programaci6n de software, necesitamos métodos
un poco mas sofisticados que en el ejemplo anterior. Por esta raz6n
existen varios métodos, como diagramas de flujo y pseudocédigo, que
conoceremos en las secciones posteriores de este capitulo,
car y definir el
problema, y para esto, debemos plantearnos algunas preguntas
De cualquier forma, el primer paso sera ident
Qué entradas se requieren?
Tipo de datos con los que se trabaja y su cantidad.
Cui la salida deseada?
Tipo de datos de los resultados y la cantidad.
2Qué método produce la salida deseada?
Requerimientos adicionales y las restricciones.
www.redusers.comees JAVA
Veamos un ejemplo un poco mas especifico. Necesitamos saber
cuanto gana un obrero que trabaja por horas; para ello sera titil
hacernos las preguntas que ya hemos citado:
Qué entradas se requieren? ENTRADA.
Nombre del empleado, cantidad de horas, costo por hora.
éCual es la salida deseada? SALIDA.
Nombre del empleado, total por cobrar.
2Qué método produce la salida deseada? PROCESO.
La muttiplicacién de la cantidad de horas por el costo hora nos dara el
total que cobrara el empleado.
Pseudocédigo
Para resolver este eee en principio utilizaremos el método de
los pseudocodigos. Se trata de la forma de escribir las instrucciones
tal como lo hacemos en nuestro idioma, claro que siguiendo algunas
reglas inherentes a este método. Para entenderlo mejor, tomaremos el
ejemplo que planteamos en la seccién anterior:
Inicio_Proceso
Leer: nombreEmpleado, Horas, costoHora,
Escribir: nombrefmpleado, Horas, costoHora
Calcular: totalcobrar = Horas * costoHora
Escribir: nombreEmpleado, totalCobrar
Fin_Proceso
aeeene
E] pseudocédigo puede utilizar palabras reservadas en un
lenguaje como: start, end, stop, if, then, else, while, repeat,
etcétera. También se puede utilizar indentacion o
tabulacién desde el margen izquierdo, para que el pseudocédigo
quede mas ordenado.
Por cierto, la computadora no entiende este pseudolenguaje; sin
embargo, nos sera de mucha ayuda, sobre todo cuando comenzamos a
programar. A la hora de implementar algoritmos, no importa el método
que finalmente utilicemos, pero si son necesarios.
www.redusers.com 1541. INTRODUCCION
Diagramas de flujo
El método de diagramas de flujo o flowchart es una técnica
muy antigua y, tal vez, la mas utilizada en comparaci6n con el
pseudocédigo. Para trabajar con ella, se requiere conocer una serie de
simbolos o cajas estandar, que contendran cada uno de los pasos de
la solucion del algoritmo y estaran unidas por medio de flechas, que
indican una secuencia.
Los simbolos mas utilizados van a representar:
proceso
decision
conectores
entrada/salida
direccién del flujo
inicio/fin
vvYVVyY
En la siguiente Tabla conoceremos los simbolos que podemos usar
al crear un diagrama de flujo.
g SiMBOLOS PARA DIAGRAMAS DE FLUJO
siMBOLOS NOMBRE
Pes
Entrada/salida Representa los datos de entrada o de salida.
w Decision
Representa las comparaciones de dos o mas
valores, tiene dos salidas: Verdadero y Falso.
16 wwrw.redusers.comJAVA
simBoLos Nest FUNCION
aes}
Decision
miitiple
Conector
| O®
Indicador
de direccion
Linea
conectora
Conector
Llamada
a subrutina
= Pantalla
Impresora
Teclado
a Comentarios
En funcidn del resultado, se seguira uno
de los diferentes caminos de acuerdo
con dicho resultado.
Permite identificar la continuacién de la
informacién, si el diagrama es muy extenso
Indica el sentido de ejecucién de las
operaciones.
Une los simbolos.
Conecta dos puntos del diagrama,
pero en diferentes hojas.
Llamada a subrutina o proceso predeterminado.
Ocasionalmente para representar E/S.
Ocasionalmente para representar E/S.
Ocasionalmente para representar E/S.
Para afiadir comentario a algtin simbolo.
Tabla 1. En esta tabla vemos los simbolos que podemos utilizar en un diagrama de flujo.
www.redusers.com
W71. INTRODUCCION ea
Para comprender de mejor forma el uso del pseudocédigo y los
diagramas de flujo, veamos algunos ejemplos resueltos:
1. Desarrollemos un algoritmo que permita leer dos valores distintos y,
luego, determinar cual de los dos es el mayor.
Primero realicemos el pseudocédigo adecuado para este problema:
1. Inicio
2. Inicializar variables: A=0, B=0
3. Solicitar dos valores distintos
4. Leer los dos valores
5. Asignarlos a las variables A y B
6. Si A=B Entonces vuelve a 3
7. Si A>B Entonces
Escribir A, “Es el mayor”
8. De lo contrario: Escribir B, “Es el mayor”
9. Finsi
10. Fin
Proceso mayorQue
Definir A,B Cone Entero
Figura 6. Este diagrama de flujo corresponde al problema que nos pide leer dos valores distintos
y, luego, determinar cual es mayor.
18
www.redusers.comeS JAVA
2. Dadas tres notas, determinar si un alumno aprueba o no una
materia; considerar que, para aprobar, el promedio debe ser igual 0
mayor que 7.
Primero creamos el pseudocédigo adecuado para resolver este
problema’
1. Inicio
2. Definir las variables ni,n2,n3, prom
3. Leer los 3 valores
. Almacenar en las variables ni,n2,n3
- prom = (n1+n2+n3)/3
Si prom=7 Entonces
. Eseribir “El estudiante aprobé con:
Sino
9. Escribir “El estudiante reprobé con: “, prom
10. Fin_si
a1. Fin
Detinis al,na,n3 prom
POMS Teele Ser Som ed 25.121-b13, mixed mode?
Figura 10. Esta imagen muestra el resultado de la ejecucién del comando java-version en una
consola de comandos de Microsoft Windows.
Como punto de partida, en el capitulo inicial de esta obra hicimos una
pequeiia introduccién a los lenguajes de programacién, revisamos su
evolucién y, también, el momento en que aparecié Java, Vimos algo de
la historia de los lenguajes de programacién mas importantes, como
nacieron, cuales son las empresas que los usan y su clasificacion. Ademas
aprendimos a planificar nuestros programas a través de la algoritmia,
conocimos qué es el ciclo de vida de un software y qué etapas lo
componen. Para terminar, realizamos un acercamiento al lenguaje objeto
de este curso: Java. Vimos algunas de sus caracteristicas y analizamos sus
diferentes ediciones.
wow.redusers.com 231. INTRODUCTION as
Actividades 01
Test de Autoevaluaci6n
1, ,Quién cre6 el lenguaje Java?
. {Qué es un applet?
. Qué es un lenguaje de programacion?
. Clasifique los lenguajes de programacién.
. {Qué es un lenguaje de bajo nivel? Cite dos ejemplos,
. {Que es un algoritmo?
. Qué es un compilador?
. Qué es lo que hace que Java sea un lenguaje tan popular?
POnaunwn
. SE Runt ine Environnent Chuild 1.8.0 101-b13>
Java HotSpot Client UN Chuild 25.101-bi3, mixed node, shar:
Comunidades de Desarrollo
En la Comunidad Java Codegeeks podemos encontrar aspectos avanzados del
lenguaje, actualizaciones y hasta manuales interesantes, aunque estén en inglés.
30 ‘www.redusers.comENTORNOS DE DESARROLLO
Aunque es posible realizar nuestros programas con herramientas
sencillas, como el Bloc de notas o Notepad++, es necesario considerar
que el uso de un entorno de desarrollo o IDE (Integrated Development
Environment) nos permitira trabajar en aplicaciones mas completas,
gracias a la posibilidad de acceder a servicios y ventajas que los
métodos més simples no proporcionan. Entre las ventajas de un IDE
encontramos las siguientes:
Un atea de trabajo para escribir los cédigos y acceso a la ayuda que
permite generar cédigo de manera automatica; asimismo a un corrector
de sintaxis y tabuladores automaticos, de tal manera que los cédigos,
sean mas ordenados.
Herramientas para compilar y ejecutar el cédigo escrito.
Opciones para organizar los proyectos de programacién.
Herramientas auxiliares para programadores, adecuadas para efectuar la
deteccién de errores 0 el andlisis de programas (debuggers).
Opciones adicionales, tales como utilidades para realizacion de pruebas 0
carga de librerias, entre otras.
Importacion de proyectos locales a una red e, incluso, desde otras IDE.
Como vemos, la importancia y las ventajas de los entornos de
desarrollo no es menor, por lo tanto, es necesario conocer algunos de
los IDE que podemos utilizar.
IDE, tomar la decisi6n adecuada
ELIDE permite que tengamos todo lo necesario para programar. Hay que tomar una
buena decision a la hora de elegirlo, ya que pasaremos horas trabajando en él.
www.redusers.com 312. PRIMEROS PASOS ea
ECLIPSE
Se trata de un software libre que se descarga desde la direccion
https://www.eclipse.org. Es uno de los entornos Java més utilizados por los
profesionales; su paquete basico se puede expandir mediante la instalacién de
plugins que agregan funciones a medida que se van necesitando.
ao Figura 1. En esta imagen
vemos la pagina oficial de
Eclipse, uno de los IDE
més populares,
NETBEANS
Es una aplicacion libre que se puede descargar desde la direccién www.netbeans.org.
Es otro de los entornos Java comuinmente utlizados; al igual que en Eclipse, pueden
agregarse funciones mediante el uso de plugins.
INTELLIJ IDEA
Como ocurre con NetBeans y Eclipse, también puede incorporar soporte para
otros lenguajes de programacién. Pero, a diferencia de los IDE anteriores, se
trata de un producto comercial
No obstante podemos acceder a una edicién reducida, denominada
Community, que se obtiene en forma gratuita. Para descargarlo, debemos
visitar la direccién www.jetbrains.com/idea/download.
JCREATOR
Este IDE se distribuye en forma comercial, aunque se pueden obtener versiones
de prueba o versiones simplificadas gratuitas en la web www.jereator.com. Esta
escrito en C++ y omite herramientas para desarrollos graficos, por lo que es mas
rapido y eficiente que otros IDE.
2 www.redusers.comee JAVA
BLUEJ
Software libre que se puede descargar desde http://bluej.org, se trata de
un entorno de desarrollo dirigido al aprendizaje de Java (entorno académico),
por lo que no se considera su uso en el Ambito profesional. Se destaca por
ser sencilloe incluir algunas caracteristicas dirigidas a que las personas que
estén aprendiendo comprendan con mayor facilidad los aspectos clave de la
programacién orientada a objetos.
Figura 2.
BlueJ es un
IDE de software
libre muy.
popular en la
comunidad
academica.
JGRASP
Es un IDE superligero creado por la Universidad de Auburn (Alabama). Su punto
fuerte se encuentra en la capacidad de generar visualizaciones del cédigo que
escribimos en forma de diagramas de estructura de control (Control Structure
Diagrams), Para descargarlo debemos visitar la direccién www.jgrasp.org.
B
Una libreria en Java es un conjunto de clases que poseen una serie de métodos y
atributos. Lo realmente interesante de estas librerias para Java es que facilitan muchas
operaciones. De una forma mas completa, las librerias en Java nos permiten reutilizar
rerias en Java
cédigo, es decir, podemos hacer uso de los métodos, clases y atrbutos que componen
{a libreria y asi evitaremos implementar nosotros mismos esas funcionalidades.
www.redusers.com 332. PRIMEROS PASOS es
Instalacion del IDE
Decidir por uno de los entornos de desarrollo integrados que
hemos presentado parece una tarea algo complicada; para esta obra
utilizaremos NetBeans, pues se trata de la opcién ofrecida directamente
en la pagina oficial de Java.
a
\ |; | NetBeans Figura 3. NetBeans es el IDE con el que
realizaremos los cédigos en este curso.
St
Para descargarlo visitaremos el sitio http://netbeans.org/
downloads, aqui encontraremos diferentes versiones para descargar,
en este caso necesitamos Java SE, por lo tanto, hacemos clic sobre
Download en la columna que corresponde.
NetBeans IDE 8.2 Download
Development Arch
etteans IDE Download bundles
Sippotedecindoges” ASE REE HTMLSnaSotet ee cree a
NetBeans ars SOK | * .
Figura 4. Sitio oficial de descarga del IDE NetBeans. Debemos tener en cuenta la versién del SO
yel idioma que deseamos descargar.
Una vez descargado nuestro entorno de desarrollo, es necesario
ejecutarlo y seguir las indicaciones del asistente de instalacién.
Cuando se completa el proceso, ya estamos preparados para
comenzar con nuestros primeros programas. Recordemos que es
necesario contar con espacio suficiente en el disco duro en el que
se instalaré el IDE, pues en esa ubicacién también se grabaran los
archivos que generemos.
34 www.redusers.comaes JAVA
Ng
IN
Proyectos recientes searamsemane
sbi eperettitoe nye ete ree
Figura 5. Una vez instalado el IDE lo ejecutamos. Mientras su proceso de inicio se completa,
vveremos informacién sobre los desarrolladores, la versién del IDE y otros datos técnicos
importantes.
Luego de instalar el IDE podemos ejecutarlo. Una vez que nos
encontremos en su interfaz principal, seré un buen momento para que
comencemos a explorar el arbol de proyectos que contendra todo lo
relacionado con nuestros programas.
NetBeans ne
Pry
Proyectos recientes creer
Figura 6. Vista principal del entorno NetBeans una vez iniciado. Observamos el panel de
Archivos, el panel Navegador y, en su seccién principal, la Pagina de inicio.
www.redusers.com 352. PRIMEROS PASOS ees
SINTAXIS Y REGLAS
La sintaxis es un conjunto de reglas que necesitamos conocer
para programar de manera correcta, utilizando un lenguaje de
programacién especifico. A continuacién, revisaremos algunas
consideraciones iniciales para tener en cuenta cuando escribamos
cédigo en Java.
Sintaxis basica
En esta seccién conoceremos las reglas mas recurrentes a la hora de
iniciar la codificacién, asi estaremos preparados para enfrentar los
primeros errores que, seguramente, apareceran conforme avancemos
en nuestro aprendizaje
Java es un lenguaje del tipo case sentive, es decir, sensible a las mayisculas y las
minasculas. Por esta razén, no es lo mismo escribir numero que Numero.
Para nombrar una clase se debe comenzar con mayiiscula, Si a clase tuviera dos 0
més palabras, se recomienda que las iniciales emppiecen con mayiisculas, a esto se
denomina Camel Case, por ejemplo:
class MiPrimeraClase
Para nombrar un método, se recomienda comenzar con miniscula; si usamos varias
palabras, las interiores deberian empezar en maylsculas. Por ejemplo:
public void miPrimerMetodo ()
Alnombrar un archivo, debe coincidir con el nombre de la clase, de otro modo.
este no compilara. Por ejemplo, si el nombre de la clase es MiPrimerPrograma,
entonces el archivo debe ser guardado como MiPrimerPrograma.java.
La ejecucién de un programa en Java se inicia desde el método main(), por lo tanto,
se trata de una parte obligatoria en el codigo.
36 www.redusers.comees JAVA
Los bloques de cédigo deben estar dentro de llaves 0, por ejemplo:
public class NombrepeClase {
/este es el bloque 1
public static void main(String args{1) {
/Jeste es el bloque 2
}//fin dei bloque 1
}//in dei bloque 2
Las instrucciones deben terminar en punto y coma (;), por ejemplo:
System.out .printin("Hola mundo”) ;
Identificadores
Los identificadores permiten asignar nombres a los distintos
componentes de un programa Java (clases, métodos, variables) y
deben ser utilizados sin excepcion alguna. Existen algunas reglas para
nombrarlos adecuadamente:
> Todos los identificadores deben comenzar con una letra maytiscula
© mindscula (A-Z 0 a2), con el cardcter de moneda ($) 0 con un guion
bajo (.
> Una palabra clave no se puede utilizar como un identificador.
No es posible usarlas para nombrar variables, ya que poseen
un propésito definido dentro de un programa y, por lo tanto, se
trata de palabras reservadas. Los IDE nos indicaran cuando una
palabra es clave y la resaltaran con un color distinto al resto del
c6digo, generalmente se utiliza el color azul.
> Los identificadores distinguen entre maytisculas y mintisculas,
Teniendo en cuenta estas reglas, algunos ejemplos de
identificadores son: edad, $salario, valor, 1 valor; y 123abe, -salario,
ejemplos de identificadores invalidos.
www.redusers.com 372. PRIMEROS PASOS Es
Secuencias de escape
Una secuencia de escape eae al uso de signos que no
veremos en la consola o salida del programa, pero que pueden
resolver los problemas que surgen cuando deseamos imprimir
ciertos signos que el compilador identifica como signos internos.
Una secuencia de escape siempre representa un solo caracter,
aunque para escribirla utilicemos dos o mas caracteres. Por ejemplo,
se utilizan para realizar acciones, como un salto de linea, 0 para
presentar caracteres no imprimibles.
En la Tabla 1 presentamos algunas de las secuencias de escape
que se encuentran definidas en Java.
«
Secuencias de Escape
Baca Pesentos)
\b Retroceso.
\ Ir al principio de la linea
¥ Comilla simple
\udddd Caracter Unicode
Tabla 1. Secuencias de escape definidas en Java junto a sus respectivas descripciones.
Caracteres especiales y espacios en blanco
Cuando trabajemos con codificacién Java, debemos tener en cuenta la
existencia de caracteres especiales y de signos de puntuacién; se trata de
los siguientes: +-*/=% & #174%*~\P<>()E1:5.,€) Por otra
parte, también existen los espacios en blanco; estos corresponden a tabulador,
espacio Y salto de linea, y SU labor es realizar una separacién entre los diferentes
elementos de un programa.
38 www.redusers.comas JAVA
Comentarios
Un comentario es una anotacion que permite
explicar algo referente al codigo que se esta
produciendo, por lo que no sera tomado en cuenta
por el compilador.
En los comentarios, se acostumbra incluir
informacion que pueda ayudar a comprender mejor
el codigo elaborado.
Existen tres tipos de comentarios, los que
conoceremos a continuacién:
DE UNA LINEA
Lo usamos para comentar alguna secuencia corta 0 instruccién simple;
para crearlo comenzamos con dos barras (IN. Por ejemplo:
//esto es un comentario de una linea
DE VARIAS LINEAS
Silo que necesitamos explicar ocupara mucho espacio, sera necesario
usar un comentario de varias lineas; para crearlo ponemos el comentario
entre los simbolos /* y */. Por ejemplo:
/*Este se considera un comentario de varias line:
No importa que se haya cambiado de linea, continta
el comentario*/
PARA EL DOCUMENTADOR DE JAVA:
Este tipo de comentario es tenido en cuenta por el documentador de
Java, es muy recomendable al comienzo de todo programa; para crearlo
utilzamos los simbolos /** y */, Por ejemplo:
(Este se considera un comentario de varia:
1 cual seré de vital importancia cuando se pida a la
herramienta java.doc que genere 1a documentacién
Linea:
correspondiente a la clase que tenga este comentario.*/
www.redusers.com 392. PRIMEROS PASOS, ea
NUESTRO PRIMER PROGRAMA
Antes de enfrentarnos al desarrollo de nuestro primer programa en
Java, debemos familiarizarnos con el concepto de proyecto.
Un proyecto es un conjunto ordenado de carpetas y archivos que
nos permiten mantener el cédigo organizado, suele constar de archivos
.java, .class y también documentacién.
El cdigo fuente se encuentra en los archivos .java dentro de la
carpeta sre (source); sin embargo, los archivos .class, que contienen el
Bytecode, se ubican en la carpeta bin.
ees oC
Cd
TWN
Recent Projects
Figura 7. Vista de la organizacion de las carpetas de nuestro proyecto.
La organizacién de los archivos en carpetas y la presencia de elementos
adicionales dependen del entorno de desarrollo que utilicemos. Ademas,
Java introduce un esquema organizativo a través de paquetes (packages).
Comentarios ini
Sibien los comentarios no son de caracter obligatorio, es recomendable
realizarlos; la comunidad de programadores lo recuerda cada vez que subimos un
programa a la Web con el propdsito de que sea corregido. Algunas organizaciones
requieren que todos los programas comiencen con un comentario que explique el
objetivo del programa, el autor, la fecha y la hora de la titima modificacién.
40 www.redusers.comaes JAVA
Para crear un proyecto en nuestro IDE, debemos seguir las
indicaciones que presentamos en el siguiente Paso a paso:
é
PASO A PASO: CREACION DE UN PROYECTO EN NETBEANS
0 Para comenzar debe ejecutar el IDE. Una vez iniciado, haga clic en el mend Archivo
yelija Proyecto nuevo.
Open mete
St we trey Ga me Get eB Ta emis Sea
1S ree ‘cnmen WD Eb:
Proyectos recientos nema,
0 En la ventana Proyecto nuevo se presentan varias carpetas. Elija Java; luego, haga
clic en la opcién Java application y presione el boton Siguiente.
a a a)
= ==
oe _ |
oe |
1 roma inatertor |
aie aaa |
|
= a)
www.redusers.com 4.2. PRIMEROS PASOS
t
i
public class Molattendo
param arge the command line arguments
public stacic void main(string{] args) (
3
www.redusers.comees JAVA
Con el proyecto ya creado escribiremos el siguiente cédigo;
tengamos en cuenta que el IDE ya agregé algunos bloques de codigo en
forma predeterminada, por lo tanto, no es necesario escribirlos.
//Bienvenidos a mi primer programa
// Programa para imprimir texto
public class HolaMundo{
//e1 método main empieza la ejecucién del programa
public static void main(String[] args) (
System.out .print1n("Hola Mundo Java”);
}//fin dei bioque main
}//fin de 1a clase HolaMundo
Para ejecutar el programa que acabamos de codificar, debemos
presionar el pequefo signo verde que representa play o ejecutar,
situado en la barra de herramientas del IDE; también podemos hacerlo
presionando la tecla
bier
deberiamos ver el mensaje |= 9 nc uu ew
Hola Mundo Java en la 7 7 -
consola inferior.
Figura 8. Ena imagen se |
muestra el boton de ejecucion | = _
del programa. Ls
Sangrias y tabulador
‘Muchos IDE insertan las sangrias en los lugares adecuados, pero también podemos
usar la tecla TAB para ampliarlas. La mayoria de los IDE dan la posibilidad de
realizar la configuracién de los tabuladores de tal forma que se inserte un nimero
especifico cada vez que oprimamos dicha tecla, ordenando nuestro cédigo.
Ademés de las sangrias, una buena practica es integrar lineas en blanco, pues
facilitan la lectura de nuestros programas.
www.redusers.com 432. PRIMEROS PASOS ceo
a
| arch Estar Yer Nvegar fuente Repsructurw Ejecutat Qepurer Profile Team Hermientas Yentana &
BEES OC Seem TB D-H-G-
Slee calrannme =|
Galen [96-8 USSeq Pee aueued
5 rene
@ mts aa)
Figura 9. En esta imagen observamos la ejecucién del programa Hola Mundo
en la consola que se ubica en la parte inferior del IDE.
Siempre es necesario considerar que, si el programa que escril
presenta errores de algiin tipo, el IDE lo marcara con un signo que
indique la linea que contiene el error. Para saber a qué tipo de error
nos enfrentamos, bastara con pasar el cursor por sobre este signo.
Es importante corregir los errores que aparezcan, de lo contrario el
programa no se compilara y, por lo tanto, no podra ejecutarse.
Aplicacion Java
Una aplicacién Java es un programa de computadora que se ejecuta cuando
utilizamos el comando java para iniciar la maquina virtual de Java (JVM), que se
encargard de compilarlo y ejecutarlo debidamente. Debemios saber que, en el
funcionamiento de estas aplicaciones, intervienen, en forma directa o indirecta,
muchos archivos, ademas de las bibliotecas que pueden ser usadas u omitidas,
dependiendo de la complejidad del programa.
44 wurw.redusers.comaes JAVA,
Ti toatundajave
taoy | BB -/ASP BSS elagle al
envenidos a mi primer programa
ograma para Smpr
‘package holamando;
1
2
3
4
5
6
7
aay
a] |+
30) | + sautnor cnariyred
fay kay
32) public class Holaltundo (
13] /fel mévodo main empieza la eecucién del programa
24| Public static void main(String(] args) (
as
e
a7
a2
a3)
20|
@'
Figura 10. Como vemos en esta imagen, el IDE ha detectado un error en la fila 16. En este caso
se trata de la falta del punto y coma () al final de la linea.
«
” RESUMEN CAPITULO 02
www.redusers.com 452. PRIMEROS PASOS Eas
Actividades 02
Test de Autoevaluaci6n
Descargue el JDK e instalelo.
Descargue el IDE NetBeans desde su sitio oficial e instdlelo.
Qué ventajas proporciona utilizar un entorno de desarrollo integrado?
2Qué es un programa de Java?
@Para qué sirven las palabras clave?
@De qué forma se crea un proyecto Java?
@Por qué es tan importante la sintaxis en un lenguaje de programacion?
2Cémo reconocemos un bloque?
El eh md det gk ond nek
{Qué signo debemos colocar al final de una instruccién?
10. ;Qué importancia tiene main() en un programa de Java?
Ejercicios practicos
1. Ejecute NetBeans y explore el contenido de la ventana de proyectos.
2. Codifique una pequefa aplicacién que muestre su nombre, su edad y el pais en
el que reside, Agregue diversos comentarios que expliquen el funcionamiento de
la aplicacion y los datos que muestra. Ejectitela.
3. Provoque algunos errores de sintaxis en la aplicacién recién creada y verifique
qué recomienda el IDE para corregirlos.
4% www.redusers.comEn este capitulo conoceremos mas sobre el lenguaje Java,
analizaremos sus elementos fundamentales y c6mo funcionan
dentro del cédigo asi como también su interacci6n e importancia.
Veremos las variables y las constantes, el uso de las expresiones
regulares, los operadores y también los métodos o funciones,
todo esto nos permitira crear programas mas avanzados.3. ELEMENTOS DEL LENGUAJE JAVA
TIPOS DE DATOS
Los tipos de datos estan asociados a las variables, es decir, determinan
lo que la variable puede contener y las operaciones que se pueden
realizar con ella.
Java es un lenguaje orientado a objetos que proviene de C, por ello
no se ha desprendido de elementos como los tipos primitivos, que
precisamente no son objetos. Por esta razén tenemos dos categorias de
datos en Java, los primitivos y los referenciados.
Los datos primitivos contienen un solo valor e incluyen enteros,
punto flotante y caracteres. En la Tabla 1 vemos los tipos primitivos
soportados hasta la version 8 de Java.
«
TIPOS DE DATOS PRIMITIVOS
TN ishy TNS cia)
Pas EN eld Blase sis) fe) Vm] st)
Representa un nimero entero real
Jong tesameccabas +2 9223372036851 775808
. Representa un numero entero real
int aes + 2.147.486.647
Representa un nimero entero real
short ec aeecue 32768 a 32768
byte Representa un némero entero real. Usa 1 Byte u 8 bits. 128.4127
Representa un nimero de punto flatante; es
double compatible con una variable con un entero real, pero ee a
no lo es con double, Usa 8 Bytes 0 64 bits. eae
float Similar al double. Usa 4 Bytes 0 32 bits. 1.23e100f, -1.23e-100f,
Debernos usar una f después del numero. 3ef, 3.141
Solo puede contener true o false.
boolean Se usa para condiciones logicas, Usa 2 Bytes. Tre o false
Representa un nimero, letra o simbolo segin la
tabla ASCI, Es compatible con un numero entero
ce real. Sies un caracter, va entre comilas simples. aces
Usa 2 Bytes 0 16 bits.
a No es un tipo primitivo, pero Java da soporte para a
manejar las cadenas de caracteres.
Tabla 1. Tipos de datos primitivos usados en Java
48
www.redusers.comaes JAVA
Los tipos de datos referenciados no estan
integrados en el sistema operativo; en realidad se
trata de objetos de Java. Entre ellos encontramos
las cadenas de caracteres 0 datos de tipo String,
Array y Object, etcétera
Podemos identificarlos porque, en el momento
de declararlos, se utiliza una palabra clave para
hacerlo; esta debe comenzar con maytiscula.
Veamos un ejemplo para los tres tipos de datos
que mencionamos:
String unaCadena = “Hola Mundo Java”;
Array unArreglo;
‘Object Cc;
ENTRADA Y SALIDA DE DATOS
En Java, la entrada y salida (1/0) se basa en el concepto de flujo de
datos, que es una secuencia ordenada de datos con una fuente o
flujos de entrada y un destino o flujos de salida,
Java nos proporciona clases de E/S que se encargan de aislar los
detalles especificos de su funcionamiento y hacen posible acceder a
recursos del sistema por medio de archivos. Para la lectura de estos
datos usamos las clases Scanner y BufferedReader.
BigInteger en Java
La libreria Biginteger de Java nos permite procesar nimeros grandes con sus
propios métodos; para usarla debemos importar la libreria math. BigInteger,
luego creamos un objeto Biginteger mediante el codigo BigInteger A = new
BigInteger(““1”);. De esta forma es posible ingresar, como argumentos,
nimeros grandes como cadenas, datos de tipo long, o simplemente leerlos
desde el teclado.
www.redusers.com 493. ELEMENTOS DEL LENGUAJE JAVA, ees
cr} ior
PUN Piety
Peri ee
Peete) Peter) rarer
BaD) aaa}
Figura 1. Esta imagen nos presenta un diagrama del fiuo de datos en sistemas de informacion.
Cuando programamos en Java, es posible mostrar informacién a
través de la consola o mediante un cuadro de dialogo.
En el primer caso es necesario ejecutar el IDE, pues la informacion
que deseamos mostrar se presentara en una ventana de comandos 0
consola. Por ejemplo, para mostrar un mensaje en consola, escribimos
el siguiente codigo:
System.out .print1n("esto es una cadena de texto”);
Ademas de cadenas, podemos mostrar el valor de una variable, para
lo cual escribimos el nombre de la variable sin comillas dobles, no
importa el tipo de variable de la que se trate. Veamos un ejemplo, en
este caso mostraremos el valor almacenado en la variable num:
System. out .print1n (num) ;
También se puede mostrar informacién que incluya una cadena de
texto y el valor de una variable; para hacerlo escribimos la cadena con
comillas dobles, un signo + y el nombre de la variable. Por ejemplo:
Ssystem.out .printin("E1 precio final es “+ precio +
” Pesos”);
Si necesitamos escribir una formula, es necesario ponerla entre
paréntesis, de la siguiente manera:
50 www.redusers.comJAVA
System. out .printin("El precio del producto, incluyendo
el IVA, es “+ (precioProductot (precioProducto*IVA) )) ;
Por otra parte, si necesitamos que el resultado no dé un salto de
linea, escribimos lo siguiente:
System. out .print ("texto sin salto de linea”);
A continuacién presentamos un ejemplo integrador que
nos permitira observar la manera de presentar informacion en
diferentes casos:
public class SalidaDatos {
public static void main(string[] args) {
int precio=100;
System. out .printin("Informacién del producto”);
System.out .print1n("El precio del producto es
“4precio) ;
System. out .print1n("El precio del producto, in-
cluyendo el IVA, es “+(preciot (precio*IVA)));
?
Uso de sangrias en los programas
La indentacién hace referencia a los espacios que vamos a dejar en el cédigo
respecto a la posicidn izquierda, es decir, la parte que se encuentra en el inicio
de las lineas. Uno de los conceptos importantes para los iniciados en Java es
saber colocar la indentacién (sangrias) y saber respetar los niveles con los que se
van colocando los bloques de codigo.
wurw.redusers.com
513. ELEMENTOS DEL LENGUAJE JAVA cea
ae =
ni We eg ene ari Gr Sp Pte fre Frente
SHBG OC suey. TW d-E-O
ino + ti hs ee
Bs Qesec¢¢elagleus
=o
=
Figura 2. Aqui vemos el resultado de la ejecucién del cédigo de ejemplo. Este resultado se
presenta en la consola de NetBeans.
La segunda forma de mostrar informacién es utilizando cuadros de
didlogo. Analizaremos esta practica en detalle mas adelante, cumado
expliquemos el uso de las interfaces graficas mediante Java Swing.
VARIABLES
Una variable es una estructura de datos que puede variar a lo largo
de la ejecucién de un programa. Ocupa un espacio en la memoria y
siempre referenciara a un tipo de dato primitivo o a cualquier objeto
que haya sido creado en nuestro programa.
Antes de usar una variable, es necesario declararla; esto significa
que debemos asignarle el tipo de dato que usara
Ademés de declararla, es opcional inicializarla, es decir, asignarle
un valor, que debe ser compatible con el tipo de dato que hemos
declarado. Por ejemplo, si declaramos una variable de tipo numérico,
esta no puede contener valores que correspondan a una cadena
de caracteres,
52 www.redusers.com,eS JAVA
La sintaxis adecuada para declarar una variable es tipo_variable
nombre_variable;. Veamos un ejemplo:
int num;
Es recomendable inicializar estas variables con un niimero genérico,
por ejemplo, uno 0 cero
int num= 0;
Antes de crear nuestras variables, debemos tener en cuenta algunas
reglas importantes:
El nombre de una variable no puede comenzar con un ndmero, pero si
puede formar parte del nombre.
Los espacios no pueden formar parte del nombre.
No se deben utilizar operadores como +, -, !, etcétera.
No es posible crear dos variables con el mismo nombre en el mismo
Ambito, aunque sean de distintos tipos.
Para nombrar una variable, esta prohibido el uso de palabras reservadas; en
el IDE estas palabras se muestran en color azul.
Debemos tener cuidado con las mayusculas y las minusculas, no es lo
mismo mivariable que miVariable.
Nombres de variables
Debemos escribir las variables con nombres significativos, asi se evitan largas
documentaciones. En caso de que los nombres se tornen complejos, no olvidemos
dejar un espacio entre cada declaracién para agregar un comentario.
www.redusers.com 533. ELEMENTOS DEL LENGUAJE JAVA, ees
Ambito
El ambito se establece en el momento de crear una variable y se
relaciona con la posibilidad de acceder a la variable desde cualquier
parte de un programa.
Por norma, la variable tiene validez dentro del bloque en el
que esta encerrada entre Ilaves (Q}) y depende del lugar donde fue
declarada, por ejemplo, dentro de una funcion o dentro de una
estructura de control (if... else).
Para aclarar este punto, es necesario que revisemos el siguiente
cédigo:
public class AmbitoDeUnaVariable {
public static void main(String[] args) (
if (true) (
Ant y=5;
»
System. out .printin(y);
Al ejecutar el cédigo presentado, el compilador nos diré que hay
un error pues se intenta acceder a la variable y, pero no esta definida
puesto que fue declarada en un bloque distinto, fuera de donde
intentamos utilizarla.
Para acceder a las variables, debemos considerar si en la clase esta
declarada como public 0 como private. Las variables declaradas como
public se acceden directamente a través de NombreClase.nombreVariable;
Nombrar variables
Por convencién, se suele escribir el nombre de las variables en mindscula, si esta
tuviera mas de una palabra, la siguiente deberia empezar en mayuscula; también
se puede usar guién bajo (_) para separarlas. Algunos ejemplos de variables
correctamente nombradas son los siguientes: variablePrueba o variable prueba,
Estas reglas nos permitiran tener un codigo mas ordenado y facil de leer.
54 www.redusers.comCEES JAVA,
en cambio, una variable private solo
puede ser utilizada mediante los
métodos de esa clase.
Desde la declaracién de cualquier
funcién propia de una clase, podemos
acceder a las variables internas
de esa clase en forma directa. Es
posible realizar esta declaracion en
el bloque de cédigo de una clase, en
el bloque de cédigo de una funcién o
también en un bloque de codigo que
se encuentra en el interior de una
funcidn. Esta ubicacion es importante
pues solo podra utilizarla el codigo
que corresponde al bloque donde declaramos la variable. Si el mismo
bloque de codigo se ejecuta varias veces durante la ejecucion de
la funci6n, por ejemplo en el caso de un bucle while, la variable se
creara con cada iteracién del bucle. En este caso, la inicializacion de
la variable es obligatoria.
No podemos tener dos variables con idéntico nombre en el
mismo ambito, pero existe la posibilidad de declarar una variable
interna a una funcion o un parametro de una funcion con el mismo
nombre que una variable declarada al nivel de la clase. En este
caso, la variable declarada al nivel de la clase queda oculta por la
variable interna de la funcién.
Nivel de acceso
El ambito de las variables se combina con su nivel de acceso;
esto determinara qué fragmento de cédigo va a ser leido y escrito
en la variable.
Un conjunto de palabras clave nos permiten controlar el nivel de
acceso de una variable; estas se utilizan en la declaracién y deben
ser ubicadas delante del tipo de datos que corresponde a la variable.
Estos niveles de acceso solo se usan para efectuar la declaracion de
una variable en el interior de una clase, por lo tanto, no se pueden
usar en el interior de un método. A continuacién, listaremos los
niveles de acceso de las variables:
www.redusers.com 553. ELEMENTOS DEL LENGUAJE JAVA, ees
Donde la clase esta definida es donde se utilizar la variable.
private String nombre;
protected La variable se utiliza en la clase donde esta definida,
en las subclases de esta clase y en las clases que forman
parte del mismo paquete.
protected String codigo;
La variable es accesible desde cualquier clase sin importar
el paquete.
public String nombre;
OTT) La variable es accesible desde todas las clases que forman
COCs parte del mismo paquete.
int numi, num2;
‘Se usa para transformar una declaracién de variable de
instancia en declaracién de variable de clase (utilizable sin
que exista una instancia de la clase).
static float impuesto;
Ciclo de vida
El ciclo de vida de una variable nos dira el tiempo que ella estara
disponible en un programa. Para una variable que ha sido declarada
en una funcion, el ciclo de vida de la variable terminara cuando
la funcién deje de ejecutarse. En cuanto termine la ejecucién del
procedimiento o de la funcién, la variable se eliminara de la memoria
y volverd a ser creada con la préxima llamada a la funcién.
Una variable declarada en el interior de una clase puede ser
utilizada mientras esté disponible una instancia de la clase, pero las
variables declaradas con la palabra clave static seran accesibles todo
el tiempo.
56 www.redusers.comaes JAVA
CONSTANTES
A diferencia de las variables, las constantes son valores que no se
pueden modificar durante la ejecucién del programa.
Su mayor utilidad se relaciona con la posibilidad de definir valores
que siempre seran iguales durante la ejecucién del programa; para
cambiar su valor debera hacerse directamente en el cédigo. Ejemplos
de constantes son el IVA 0 el valor de PI.
En Java, cualquier tipo de dato puede ser una constante. Para
definirla debemos escribir la palabra static final antes del tipo de
dato, y luego, el nombre de la constante en maytisculas.
Para entender cémo se implementan las constantes, veamos un
ejemplo sencillo
public class UsoDeConstantes {
public static void main(String[] args) {
static final double IVA = 0.21;
int producto=400;
double resultado= producto*IVva;
System.out .print1n("El IVA del producto es “tre—
sultado) ;
d
Clases en Java
Una clase es a unidad fundamental de programacién en Java. Se trata de
una especie de plantilla 0 molde en el que escribiremos los atributos y el
comportamiento de los abjetos. Cuando ejecutamos un programa, este crea
y manipula los objetos en concreto, siguiendo el modelo de la Programacion
Orientada a Objetos o POO, que es uno de los principales paradigmas de
desarrollo de software en la actualidad.
www.redusers.com 573. ELEMENTOS DEL LENGUAJE JAVA, ees
En el cdigo anterior hemos declarado la constante IVA. Notemos
que difiere de la declaracién de variables en dos puntos: escribimos
la palabra static final, y el nombre de la constante se recomienda en
mayiisculas. Fuera de estas consideraciones iniciales, el uso de las
constantes es idéntico al de las variables.
OPERADORES
Se trata de palabras clave del lenguaje, que nos permiten ejecutar
operaciones con el contenido de ciertos elementos, por ejemplo,
variables, constantes, valores literales 0 retornos de funciones.
Si combinamos uno 0 varios operadores y otros elementos, formaremos
una expresi6n. Estas expresiones se evaliian en el momento en que se
ejecutan, teniendo en cuenta los operadores y los valores asociados.
Java nos ofrece dos tipos de operadores: unarios (usan un solo
operando) y binarios (utilizan dos operandos).
Otro punto por considerar es que el operado puede ir antes 0
después de la variable, es decir, en forma prefijada o posfijada. Veamos
un ejemplo:
int i;
i=2;
‘System. out .printIn (i++);
Este cédigo mostrara 2 como resultado, pues el incremento se
realiza después de la utilizacién de la variable con la instruccién
printin, Sin embargo, en el siguiente ejemplo resultara algo distinto
int 4;
System. out .print1n (++i);
Este codigo mostrara 3 como resultado, porque el incremento se
ejecuta antes que la instruccién printin.
58 www.redusers.comoes JAVA
En Java podemos dividir los operadores en siete categorias principales’
OPERADORES UNARIOS
En esta categoria encontramos los siguientes operadores:
5 valor negativo
- complemento a uno
++ incremento
decremento
! negacién, solo se puede utilizar en las variables
del tipo boolean o en comparaciones del tipo booleanas
OPERADORES DE ASIGNACION
El operador = es el tnico en esta categoria. Se lo puede combinar con un operador
aritmético logico 0 binario, por ejemplo,
x22 que es equivalente a x=x42.
OPERADORES ARITMETICOS
Nos permiten efectuar célculos en el contenido de las variables, encontramos las
siguientes opciones:
+ suma
o resta
* muttiplicaci6n
1 division
% médulo o resto entero de la divisién
OPERADORES BIT A BIT
Operan solo con enteros y trabajan a nivel de bit.
& y binario
| o binario
a o exclusivo
> desplazamiento a la izquierda (divisién por 2)
<< desplazamiento a la derecha (multiplicacién por 2)
www.redusers.com 593. ELEMENTOS DEL LENGUAJE JAVA eas
OPERADORES DE COMPARACION
Se trata de operadores utilizados en las estructuras de control. Devolveran un valor
de tipo boolean en funcin del resultado de la comparacién efectuada; luego la
estructura de control utiizard este valor.
igualdad
desigualdad
< menor que (variante <=)
> mayor que (variante >=)
instanceof comparacién del tipo de variable con el tipo indicado
OPERADORES DE CONCATENACION
El operador + (mas) utilizado en la suma se usa para unir cadena de caracteres 0
también para unir un String a una variable, por ejemplo:
System. out .print1n("El precio del producto es “+precio) ;
OPERADORES LOGICOS
Se trata de operadores que permiten combinar las expresiones en estructuras
condicionales o en estructuras de iteracié
& y logico
I 0 logico
n © exclusivo
! negacién
&& y l6gico; a diferencia del & simple, este operador evaluara solo
sila primera condicién es falsa
r 0 légico; a diferencia del | simple, este operador evaluard solo
sila primera condici6n es falsa.
g Divisi6n por cero
Un error que sabremos subsanar es la division por cero; se trata de un tipico error
en tiempo de ejecucién. Cuando se produce una excepcién, se muestra en la
pantalla un mensaje de error y finalza la ejecucién del programa.
60 www.redusers.comees JAVA
Orden de evaluacién de los
operadores
Es importante considerar el orden en que se ejecutarn los
operadores cuando se encuentran combinados, pues se evaltian en
un orden muy preciso.
Los incrementos y decrementos prefijados se ejecutan primero:
luego, las operaciones aritméticas; le siguen las operaciones de
comparacién; después, los operadores légicos y, finalmente, las
asignaciones
Los operadores aritméticos poseen un orden de evaluacion especifico
dentro de una expresién, vedmoslo a continua
> Negacion (-)
> Multiplicacion y division (*, )
» Division entera ()
> Médulo (%)
» Suma y sustraccién (+, -), concatenacién de cadenas (+)
Si las operaciones presentan paréntesis, existe prioridad para las
expresiones dentro de ellos.
En una expresi6n, podemos utilizar tantos niveles de paréntesis
como deseemos; sin embargo, es importante que la expresion
contenga tantos paréntesis de cierre como de apertura, porque de lo
contrario, el compilador generara un error.
Los literales
En Java, un literal es un valor que suele aparecer dentro de un programa;
puede ser de tipo entero, real, lgico, caracter, cadena de caracteres 0 un null
Por ejemplo, 12, 13.6, 3.14161722D, "Users”, null, ‘@’, “Presione \"Enter\”
para continuar”. Hay que aclarar que los tipos enteros pueden expresarse en
decimal (base 10), octal (base 8) y hexadecimal (base 16), mientras que los de
tipo real pueden terminar en E seguida de un exponente (positivo 0 negativo),
por ejemplo, 14E-3.
www.redusers.com 613. ELEMENTOS DEL LENGUAJE JAVA, ees
EXPRESIONES REGULARES
Una expresién regular es un patrén que describe a una cadena de
caracteres. Se trata de elementos que se usan desde hace afios en otros
lenguajes de programacién, como Perl. Desde la versién 1.4 del JDK, se
incluye el paquete javatil.regex, que proporciona una serie de clases
para poder hacer uso de este tipo de expresiones en Java. Veamos
algunos casos en donde se pueden utilizar:
Cuando deseamos que una fecha ingresada por el usuario cumpla con un
patrén espectfico, por ejemplo, dd/mm/aaaa.
Para comprobar que un DNI esta formado por 8 cifras, un guion y una
letra, 0 que una direccién de correo electronico es valida.
Para asegurar que una contrasefia cumple con determinadas condiciones
‘© que una URL sea valida.
También podemos utilizar las expresiones regulares para comprobar
cudntas veces una secuencia de caracteres determinada se repite
dentro de la cadena. En este caso, el patron se busca en el String de
izquierda a derecha; cuando se determina que un caracter cumple con
el patrén, este caracter ya no vuelve a intervenir en la comprobacion.
Simbolos comunes
Dentro de las expresiones regulares podemos utilizar muchos
simbolos; gracias a ellos es posible representar elementos u
operaciones dentro de una expresi6n. Los conoceremos en la Tabla 2.
Simbologia en Java
Mucha de la simbologia que utiliza el lenguaje Java proviene de C y posteriormente
de C++, por lo que, a los conocedores de ambos lenguajes, se les hara mas facil
enfrentar la programacién,
62 www.redusers.comJAVA
Indica el inicio de un String, en este caso debe contener la expresion al
principio.
[abe] Representa una defnicién de conjunto, el String debe contener a, b 0.
Aexpresion
Indica negaci6n, en este caso el String debe contener cualquier caracter
titel excepto a, b 0.
|
Tabla 2. Simbolos utilizados en expresiones regulares.
Por ejemplo, para encontrar la frase ‘encuentro frase’, utilizamos el
siguiente cédigo:
(\W]*) encuentzo\frase (\W|$)
En este caso, \W coincide con cualquier carécter que no sea
una letra, un nero o un guion bajo. Impide que la expresion
regex tenga en cuenta los caracteres que aparezcan antes o después
de la frase.
En cambio, si buscamos una coincidencia con cualquier
palabra o frase de la lista siguiente: papa — batata - remolacha —
zanahoria, haremos esto:
(24) (\w1*) (papa|batata| remo2acha | zanahoria|\sialfrutas)
wl)
www.redusers.com 633. ELEMENTOS DEL LENGUAJE JAVA
Metacaracteres
Los metacaracteres también pueden formar parte de las expresiones
regulares. Se trata de un conjunto de caracteres con formatos
especiales, por ejemplo, alfanuméricos, digitos y signos de puntuacién,
entre otros.
” METACARACTERES
METACARACTER DESCRIPCION
«
WW Digito, equivale a [0-9].
\s Espacio en blanco, equivale a [\t\ntxOb\\f].
Ne Una letra mayuiscula 0 miniscula, un digito o el cardcter _, equivale a
[a-2A-20-9_],
b Limite de una palabra.
Tabla 3. Metacaracteres utilizados en las expresiones regulares.
En Java debemos usar una doble barra invertida \\, por lo tanto,
para utilizar \w, es preciso escribir \Ww. Si vamos a indicar que la
barra invertida es un caracter de la expresion regular, sera necesario
escribir W.
Veamos un ejemplo de como se usan los metacaracteres:
String a = “Ejemplo, de. separar- String+ por* caracter”;
//eara usar los caracteres puede usar esta expresién
regular:
String[] parts = a.split ("[\\W]”);
for (String d:parts) (
‘System. out .printin(*==5" +i);
g
www.redusers.comeee JAVA
Cuantificadores
Los cuantificadores son elementos utilizados para controlar la
cantidad de repeticiones o coincidencias de un patron que hemos
definido previamente. Se especifican luego de los corchetes (J) en los
que predefinimos los caracteres permitidos que podemos inicializar,
luego de haber indicado entre Ilaves ({}) la cantidad de veces que
puede repetirse el patron por buscar.
«
= CUANTIFICADORES
RESION DESCRIPCION
oo Indica que lo que va justo antes de las laves se repite X veces.
Indica que lo que va justo antes de las llaves se repite minimo X veces y
XY} maximo Y veces. También podemos poner {X,} indicando que se repite un
minimo de X veces sin limite maximo.
Indica 0 0 mas veces. Equivale a {0,}.
+ Indica 1.0 mas veces. Equivale a (1).
c Indica 0 0 1 veces. Equivale a {0,1}.
Tabla 4. Simbolos usados en cuantificadores.
Veamos un ejemplo sobre el uso de los cuantificadores, para ello
crearemos un patron regex, que nos permita buscar niimeros hexadecimales:
0 [xx] [0-9a-FA-F]
En este caso deseamos encontrar un conjunto de caracteres en el que
el primer caracter sea el 0, el segundo caracter sea una x 0 una X, el tercer
cardcter sea un digito de 0a 9, una letra de aa fo una maytiscula de Aa F.
La clase String
Muchas veces String es confundido con un tipo de dato, sin embargo, no lo es. Se
trata de uno de los casos extrafios de este lenguaje, ya que, al ser una clase, vamos a
utlizarla para tipficar las variables que contendrén una cadena de caracteres, es decir,
textos. Por esta raz6n, la primera letra debe escribirse en mayusculas.
www.redusers.com 653. ELEMENTOS DEL LENGUAJE JAVA, ees
METODOS
En Java, un método es un conjunto de instrucciones definidas dentro
de una clase; realiza una determinada tarea y puede ser invocado
mediante un nombre. En esta seccién aprenderemos cémo debemos
declarar y utilizar métodos; de esta forma, podremos facilitar el disefio,
la implementacién, la operacién y el mantenimiento de programas
extensos. Veamos algunos ejemplos de métodos:
Math.pow(): adecuado para hallar la potencia de un numero.
Math.sqrt(): para hallar la raiz de un numero.
Character.isDigit(): permite determinar si un caracter es digito.
System.out.printin(): adecuado para imprimir resultados.
Es importante saber que, cuando se llama a un método, la ejecucion
del programa pasara al método; pero, cuando este acaba, la ejecucién
continuara a partir del punto donde se produjo la llamada.
Construccién de métodos
Como sabemos, la mayoria de los problemas son muy extensos, por
lo tanto, las soluciones que podemos implementar a nivel de software
también seran extensas. Para enfrentar esto, es posible crear programas
modulares, pues, si dividimos un programa en pequefas piezas 0
médulos, lograremos que un programa extenso sea mas entendible.
Las ventajas relacionadas con la modularidad y la construccién de
métodos tienen que ver con la posibilidad de reutilizar el codigo
(refactorizacién); esto permite que, en lugar de escribir el mismo
cédigo varias veces, solo hagamos una llamada al método adecuado.
En Java, un método siempre pertenece a una clase. Como
sabemos, todo programa Java posee un método llamado main; se
trata del punto de entrada al programa y, también, el punto de
salida. Para construir métodos, hay que considerar que siempre
debemos implementarlos fuera del main.
www.redusers.comea JAVA
La estructura general de un método Java es la siguiente
(Modificador de acceso] [Otros modificadores] Valor_retorno
nombreMetodo (pardmetros) (
Instruccion
[zeturn valor;]
Los elementos que aparecen entre corchetes son opcionales, veamos
su sintaxis en detalle
ITIiPeCt ies y Se trata de un elemento opcional que determina el tipo
de acceso al método.
De aa Este elemento se encarga de indicar el tipo del valor que devuelve
‘el método; siempre hay que indicar este tipo de valor y, si el
método no dewuelve ningtin valor, debemos indicarlo mediante void.
CCU Se trata del nombre que se le da al método. Para crearlo,
hay que seguir las mismas normas que aprendimos
ara crear variables.
ir Se trata de un elemento opcional que se ubica después
del nombre del método y siempre entre paréntesis.
Estos pardmetros 0 argumentos son los datos de
entrada que recibe el método para operar. Un método
puede recibir cero 0 més argumentos y, para cada
argumento, debemos especificar su tipo. Los paréntesis
‘son obligatorios, aunque estén vacios.
Se utliza para devolver un valor La palabra clave return va
seguida de una expresién que seré evaluada para saber el valor
de retorno; esta expresin puede ser compleja o ser simplemente
el nombre de un objeto, una variable de tipo primitivo o una
constante. El tipo del valor de retorio debe coincidir con el tipo
dewelto que se ha indicado en la declaracién del método. Si el
‘método no devuelve nada (void), a instruccién return es opcional.
www.redusers.com 673. ELEMENTOS DEL LENGUAJE JAVA, ees
Un método tiene un iinico punto de inicio, representado por la lave
de inicio { . Su ejecucién termina cuando se llega a la lave final } 0
cuando se ejecuta la instrucci6n return. Esta instruccién puede aparecer
en cualquier lugar dentro del método, no necesariamente al final
Los pasos que debemos seguir para implementar un método son los.
siguientes
Hz) 1. Describir lo que el método debe hacer.
i 2. Determinar las entradas correspondientes.
Ea 3. Defnir los tipos de las entradas.
PBB + Determinar et tno det valor ce retorno.
a 5. Escribir las instrucciones que corresponden al cuerpo del método.
PERI © Probar et metodo meciante el iseno de distintos casos de prueba.
*
* Suma de dos ntimeros enteros
”
package sumanumeros,
import java.util.*;
public class SumaNumeros {
public static void main(string[] args) (
Scanner entrada = new Scanner (System. in) ;
int numerol, numero2, resultado;
system. out .print (“Ingrese el primer niimero: “);
numerol = entrada.nextInt ();
System. out .print (“Ingrese el segundo nimero: “);
numero2 = entrada.nextint ();
resultado = sumar(numerol, numero2);
//sumax es el método
System. out .printn("Suma: “ + resultado);
68 www.redusers.comeS JAVA
)
public static int sumar(int a, int b)(
int ¢;
e=atn;
return c;
Mientras escribimos el cédigo, notaremos que sumar marcara un
error; se trata de un método que atin no se ha implementado.
E] método se Hama sumar y recibe dos nimeros enteros ay b como
argumentos. En la llamada al método, los valores de las variables
numerol y numero2 se copian en las variables ay b; el método suma
los dos niimeros y guarda el resultado en la variable ¢. Finalmente,
devuelve, mediante la instruccién return, la suma calculada,
Para indicar al método que no devuelva nada, debemos escribir void
en lugar de static.
RESUMEN CAPITULO 03
En este capitulo hicimos una descripcién completa de los elementos
fundamentales que encontramos en el lenguaje Java, esto nos servira
para contar con la base de conocimientos que necesitamos para no tener
falencias en nuestros codigos y también para entender para qué sirven los
elementos en los bloques de cédigo y que rol cumple cada uno de ellos.
‘demas, vimos en detalle las expresiones regulares, su uso y los elementos
que podemos utilizar para crearlas y, finalmente, realizamos una completa
introduccién a los métodos, que son muy importantes para el inicio de la
construccién de las clases.
www.redusers.com 693. ELEMENTOS DEL LENGUAJE JAVA Es
Actividades 03
Test de Autoevaluacion
1. Qué importancia tienen los tipos de datos en un programa?
2. Cuando es necesario el uso de las constantes?
3. :Qué son las expresiones regulares?
4. Mencione algunos ejemplos de cuentificadores
5. {Qué son los literales en Java?
6. num2) {
System. out .printin(numl +" es el mayor”);
1% www.redusers.comaes JAVA
Jelset
System. out .print1n(num2 +" es el mayor”);
+
y
+
Una vez que ejecutemos este cédigo, dependiendo de los valores
que ingresemos mediante el teclado, obtendremos el mayor de ellos.
Estructura condicional anidada
Una estructura es anidada cuando, en la estructura condicional del
verdadero o falso, se agregan una 0 mas estructuras condicionales.
FALso \VERDADERO
————_ CONDICION —_|
v
FALSO__<¢onpicibw> MEROADERO
v ‘OPERACIONES
‘OPERACIONES
J
Figura 5. Representacidn grafica de las estructuras condicionales anidadas,
Operador ternario
En informatica un operador ternario (a veces incorrectamente llamado operador
terciario) es un operador que toma tres argumentos. Este operador puede pasar
varias lineas de cédigo a una sola linea en lenguajes que puedan usarlo, Puede
sustitur al ifelse que va tener una sintaxis resultado=condicion ? valor_si_se_cumple :
valor_si_no_se_ cumple, lo cual reduce de tres lineas a una.
www.redusers.com 14, ESTRUCTURAS DE CONTROL Y ARREGLOS: ees
Para ejemplificar este tipo de estructuras, crearemos un programa
que pedira el ingreso de tres notas de un estudiante, luego calculara el
promedio e imprimira alguno de los siguientes mensajes:
eo
Ea Siel promedio es >=4 y <7 mostrar Diciembre.
[EEE si crore es <4 mostrar besaprabado,
mostrar Aprobado.
import java.util. Scanner;
class EstructurasCondicionalAnidadal {
public static void main(string argI1){
int nota, nota2, nota3;
Scanner entrada=new Scanner (System. in) ;
System.out .print1n("Ingrese la primera nota: “);
notal = entrada.nextint ();
System.out.print1n("Ingrese la segunda nota: “);
nota? = entrada.nextInt ();
System. out .printIn("Ingrese la tercera nota
nota = entrada.nextInt ();
float promedio=1.0£* (notal+nota2+nota3) /3;
4€ (promedio>=7) {
System. out .print1n("Aprobado”) ;
Jeiset
Af (promedio>=4) {
System. out .printin ("Diciembre") ;
jelset
System. out .print1n("Reprobado”) ;
)
d
8 www.redusers.comos JAVA
Estructura condicional compuesta (if - else if)
Esta estructura nos permite indicar otra condicién cuando no se
cumple la condicién inicial; esto hace que el cédigo sea mas especifico
Veamos un ejemplo en el que aplicamos esta estructura:
import java-util.Scanner;
class EstructurasCondicionalcompuesta2 {
public static void main(String arg[]){
int num;
Scanner entrada=new Scanner (System. in);
=)
un valos
System. out . printin (“Ingre
num = entrada.nextInt () ;
if (num 100) (
System.out .print1n("El nimero es mayor que 100 * +
num) ;
Jelse if (num>=70) (
System.out .print1n("E1 némero “tnum+ “ es mayor o es
igual que 70”);
Jelse{
System.out.print1n("E1 némero “+num+
“es menor que
70")
y
}
)
Estructura condicional de selecci6n multiple
(switch)
Esta estructura condicional nos permite asignar un valor (que puede
ser una variable) y una lista de casos; si se cumple alguno de los
casos, se ejecutan las instrucciones asociadas; en cambio, si no se
cumple ningiin caso, es posible indicar la ejecucién de acciones
predeterminadas. Normalmente, se utiliza para indicar la presencia
de un error mediante la presentacién de un mensaje. Veamos un
cédigo de ejemplo:
www.redusers.com 94, ESTRUCTURAS DE CONTROL Y ARREGLOS Sas
import java.util.Scanner;
class EstructurasSeleccionMultiple {
public static void main(string arg{1)(
String dia="Lunes”;
System.out .print1n(“Ingrese un dia de 1a semana”);
String = entrada.next ();
switch (dia) (
case “Lunes”:
System. out .print1n("Hoy es “tdia);
break;
case “Marte
System. out .print1n ("Hoy es “tdia);
break;
case “Miércoles”
System. out .printin("Hoy es “tdia);
System. out .print1n("Hoy es “tdia) ;
break;
case “Viernes”
System. out .printin("Hoy es “tdia);
break;
case “Sébado”:
System. out .print1n("Hoy es “tdia);
break;
case “Domingo’
System. out .print1n("Hoy es “+dia);
break;
default
System. out .print1n ("No ha ingré
dato correcto”) ;
80 www.redusers.comees JAVA
La sentencia switch recibe un valor para analizar, que comparara con
un literal del mismo tipo en cada caso. Si son iguales, se ejecutara el
cOdigo asociado, y la estructura se detendra mediante la etiqueta break
Si no coincide en ninguno de los casos, se ejecutara la etiqueta default.
Estructuras iterativas
Las estructuras iterativas se relacionan con operaciones que se
deben ejecutar un nimero determinado de veces. El conjunto de
instrucciones que se ejecuta cierto ntiimero de veces se llama ciclo,
bucle o lazo.
Cuando hablamos de iteracién, nos referimos a cada una de
las diferentes pasadas 0 ejecuciones de todas las instrucciones
contenidas en el bucle; para salir de este bucle, se indica una
condicién por cumplir.
Estructura while
Esta estructura algoritmica se ejecuta mientras la condicion evaluada
resulte verdadera. Se evalia la expresién booleana y, si es cierta, se
ejecuta la instruccién que especifiquemos. Luego se vuelve a evaluar
la expresién booleana; si todavia es cierta, se ejecuta de nuevo el
cuerpo 0 conjunto de instrucciones. Este proceso de evaluacion de
la expresion booleana y la ejecucion del cuerpo se repite mientras la
expresion sea cierta.
-————> |
FALSO
CONDICION
a
OPERACION(ES)
|
oc
Figura 6. Diagrama de flujo de la estructura while.
www.redusers.com 814, ESTRUCTURAS DE CONTROL Y ARREGLOS ees
La sintaxis de la estructura while es la siguiente
while (condicion) (
instrucciones (cuerpo) ;
Veamos un ejemplo en el que usaremos la estructura while para
imprimir en pantalla los 100 primeros nimeros:
public class EstructuraWhile {
public static void main(string[] args) {
int x=1;
while (x<=100) {
System. out .print (x)
System. out .print(" - “);
x = xt;
Como vemos, x vale 1 al principio, se comprueba la condicién,
como Les menor o igual que 100, entra en el bucle para ejecutar las
instrucciones, y asi sucesivamente hasta que x vale 101, ya que 101
no es menor o igual que 100. Debemos considerar que, si xno fuera
modificado, nunca se saldria del bucle.
Fases de un programa
Muchos programas pueden dividirse en tres fases: una fase de inicializacién (en la
que se inicializan las variables), una fase de procesamiento (en la que se ingresan
los valores de los datos y se ajustan a las variables del programa) y una fase de
terminacién (que calcula y produce el efecto deseado del programa). También
es necesario considerar que los programas en Java carecen de vida propia sin la
implementacién de una clase y la creacién de los objetos adecuados.
82 www.redusers.comas JAVA
Estructura for
El ciclo for es
ilar a while, pero, ademas de la condicién, incluye la
inicializacién de una variable y un incremento 0 decremento de esa
variable. En principio no es necesario que incluya estas tres partes,
por lo que podemos inicializar o incrementar varias veces.
>
Figura 7.
Diagrama de
flujo de la
estructura for.
La sintaxis de esta estructura es la siguiente:
for (inici:
instruccions
izacion; condicion; incremento) (
‘Veamos el mismo ejemplo que presentamos para while, de esta forma
entenderemos como se construye una estructura for:
public class EstructuraFor (
public static void main(string[] args) {
Ant x=1;
for(x=1; x<=100; x++) (
System. out .print (3) ;
www.redusers.com 834, ESTRUCTURAS DE CONTROL Y ARREGLOS: ea
System. out .print(" - “);
x = xt;
Estructura DO WHILE
Esta estructura ejecutara, al menos una vez, su bloque repetitivo, a
diferencia de las estructuras anteriores, que podian no ejecutar el bloque.
—————— |
VERDADERO
Figura 8. LL (CONDICION)
Diagrama de flujo
de la estructura
DO... WHILE. i FALSO
La sintaxis de esta estructura es la siguiente:
dot
intrucciones
}while (condicion) ;
Veamos un ejemplo de esta estructura, para lo cual crearemos un
cédigo que nos pedira introducir un nimero entre 1 y 10
Amport java.util.Scanner;
public class EstructuraDowhile {
public static void main(string[] args) (
84 www.redusers.comaes JAVA
Ant num;
Scanner entrada=new Scanner (System. in);
dof
System. out .print1n("Ingrese un némero entre 0 y 10: ");
num = entrada.nextint ();
)
while (num>=10||num<0) ;
System. out .print1n("El némero ingresado
“+num) ;
En este caso debemos ser cuidadosos con la condicién de salida. Por
ejemplo, si escribimos 5 (5>=10 0 5<0), devolvera falso; por otra parte, si
escribimos -1 (-1>=10 0 5<0), devolvera verdadero, haciendo que vuelva a
pedir un nimero.
Estructura for each
Con este ciclo es posible recorrer estructuras mas complejas, como
listas y determinadas colecciones (que veremos en el Volumen 03
de este curso). A estas estructuras se las denominan iterables, ya
que tienen un mensaje del tipo iterator que devolvera la instancia
de iterator.
En Java no existe la palabra clave foreach, pero podemos lograr el
resultado deseado usando for, por esta razon hablamos de for each o for
extendido. La sintaxis de esta estructura es la siguiente:
For extendido
En las titimas versiones de Java se introdujo una nueva forma de uso del for, ala que
se denomina “for extendido” o “for each’. Esta forma de uso del for, que ya existia
en otros lenguajes, facta el recorrido de objetos existentes en una coleccién sin
necesidad de definir e! nimero de elementos a recorrer. Fue incorporado a partir de
Java 5 y solventa de una manera sencilla el recorrido en estructuras como arrays 0
en colecciones.
www.redusers.com 854, ESTRUCTURAS DE CONTROL Y ARREGLOS Es
for (TipoBase variable: ArrayDeTiposBase) {
intrucciones
NO GHAY ELEMENTOS.
PARA VER? Se
Ls
ras SEUSS
Diagrama de flujo
de la estructura
A continuacién presentamos un ejemplo que nos permitira ver la
implementacion de for each:
class EstructuraForeach {
public static void main(String args{]) {
String [] arrstr = {~1”, "2", “37, “4","5");
for (String elemento : arrstr) {
System. out .print1n (elemento) ;
0 observamos que se unifica la forma de listar los
elementos y, de esta manera, se simplifica el cédigo. Sin embargo,
podemos lograrlo usando solo for:
for (int elemento=0; elemento +suma) ;
System. out .print1n("El factorial es: ° +fact);
El resultado de este cédigo es el siguiente: La suma es 15 y el factorial 120.
www.redusers.com 894, ESTRUCTURAS DE CONTROL Y ARREGLOS: ees
Uso de break para salir del bucle
Si empleamos la instruccién break, podemos forzar la salida inmediata
de un bucle omitiendo cualquier cédigo en su cuerpo, asi como la
prueba de condicién del bucle. Esto terminara el bucle, y el control
del programa se reanudara en la instrucci6n siguiente a él. Veamos un
ejemplo:
public class ForVariante6(
public static void main(String args[]) (
int num= 100;
//Recorre el bucle si i*i es menor que num
for(int i=0;icnum; i++) (
if(i*i>=num) break;
//termina el bucle si iti >=100
System. out .printin(i+" “);
y
System. out .print1n(*bucle completo.”)
Una vez que ejecutemos este programa, veremos que se generara la
siguiente salida: 0123456789 bucle completo.
Uso de break como goto
La instruccién break puede emplearse por si sola para proporcionar una
forma actual de la instruccién goto. Java no cuenta con una instruccin
goto porque esta proporciona una manera no estructurada de modificar
el flujo de ejecucién del programa.
El punto flotante en los bucles
Los valores con punto flotante suelen traer problemas al ser aproximados.
Controlar ciclos con variables con estos valores puede producir valores imprecisos
del contador y pruebas de terminacién no deseadas. Por esta razon, es necesario
que procuremos utilizar nimeros enteros para controlar los ciclos del contador.
90 www.redusers.comaes JAVA
Los programas que llevan a cabo un uso extenso de goto suelen ser
dificiles de comprender y de mantener. Sin embargo, existen ciertos
lugares en los que goto resulta itil y legitimo, por ejemplo, puede ser
litil al salir de conjuntos profundamente anidados de bucles.
Para manejar estas situaciones, Java define una forma expandida de
la instrucci6n break, la que nos permite salir de uno o mas bloques de
cédigo. No es necesario que estos bloques sean parte de un bloque o
un switch, puede tratarse de cualquier bloque.
Ademas, se puede especificar con precision dénde se reanudara la
ejecucién, pues esta forma de break funciona con una etiqueta,
La forma general de la instruccién break etiquetada se muestra a
continuaci6n:
public class ForVariante7{
public static void main(String args[]) {
hech
for(int i=0;i<10; i++) (
for(int 5=0;5<10;5++ ){
for(int k=0;k<10;k++ ){
System. out .printin(kt” ");
4£(ke=5) break hecho; //salta a hecho
)
System.out .print1n(Tras bucle k”);//no se ejecuta
y
System. out .printin(“fras bucle 3”);//no se ejecuta
)
System.out .print1n("Tras bucle i”);
+
i
El uso de continue
Es posible forzar una iteracién temprana de un bucle omitiendo
la estructura de control normal del bucle. Esto se logra usando la
instruccién continue, la que impone la ejecucién de la siguiente
iteracin del bucle omitiendo cualquier cédigo entre si mismo y la
expresién condicional que controla el bucle. Por lo tanto, continue
es esencialmente el complemento de break. Por ejemplo, el siguiente
www.redusers.com 14, ESTRUCTURAS DE CONTROL Y ARREGLOS: ees
programa usa continue como ayuda para imprimir los ntimeros pares
entre el 0 y el 100.
public class ForVariantes(
public static void main(String args{]) (
Ant i;
//%mprime némeros pares entre 0 y 100
if((482)!=0) continue; //itera
System. out .print1n(i);
Solo se imprimen los ntimeros pares, porque uno no causaria que el
bucle se iterara antes, omitiendo la llamada a printin().
En los bucles while y do while, una instruccion continue hara que el
control vaya directamente a la expresién condicional y luego siga
el recorrido del bucle. En el caso de for, se evaltia la expresin de
iteracion del bucle, luego se ejecuta la expresién condicional y, mas
tarde, se sigue el bucle.
Bucles externos
Al igual que con la instruccién break, continue puede especificar una
etiqueta para describir en cual bucle incluido se debera continuar.
Aqui se presenta un programa de ejemplo que usa continue con una
etiqueta
public class ForVariante9(
public static void main(String args{]) (
for(int 4=1;4<10; 14+)
System. out .print1n("\nPaso de bucle externo “+it *,
Bucle interno: “);
for(int j=1;5<10; 5+4){
= www.redusers.comaes JAVA
if (j==5) continue bucl
eno; //continua el bucle
externo
System. out .print (j+ " - “);
)
d
?
Bucles anidados
Como vimos en los ejemplos anteriores, es posible anidar un bucle
dentro de otro. Los bucles anidados se usan para resolver una amplia
variedad de problemas de programaci6n, asi que son parte esencial de
esta. Veamos el siguiente ejemplo para encontrar los factores de los
ntimeros del 2 al 100:
public class ForVariantel0(
public static void main(String args[]) {
//Imprime los factores del 2 al 100
for(int i=2;i<=100; i++) (
System. out .printin("Factores de “Hit”: “);
for(int j=2;5 Se identifica por un Gnico nombre de variable.
> Sus elementos se almacenan en posiciones contiguas de memoria.
> Se accede a cada uno de sus elementos en forma aleatoria.
TT T
Primer Segundo Ultimo
elemento elemento elemento
Figura 11. Gréfico que nos muestra el funcionamiento de un arreglo de una dimensién o vector.
94
www.redusers.comos JAVA
La sintaxis de un vector es la siguiente:
Tipo_dato nombre_array[]=new tipo_dato[tamafio] ;
Elementos
o 1 2 3 4 5S 6 7 8B 9
Figura 12, Ejemplo grafico de un vector en el que verificamos el uso de indices para referenciar a
los elementos. En Java debe empezar por cero (0).
Veamos un ejemplo en el que observaremos como se inicializa €
instancia una variable dentro de los arreglos:
int num[]=new int [5];
Otra forma de escribirla es la siguiente:
int mum[J=(5, 6, 5, 2, 3);
Los arreglos se rellenan en forma automatica. Por ejemplo, si se
trata de un array de int, se completan con 0; si es un array de String, se
rellenan con nul
public static void main(String{] args) {
//Pefinimos un array con 10 posiciones
int num[]=new int [10];
num[0]=5;
www.redusers.com 54, ESTRUCTURAS DE CONTROL Y ARREGLOS: ees
num[1]=9;
System. out .print1n(num[0]);
System. out .printin(num[1]);
Para recorrer un array debemos usar un bucle, en el que lo nico
que cambie sera la posicion. Veamos un ejemplo de como rellenar
un array de 10 posiciones con miiltiplos de 5:
public class Arrayl {
public static void main(String[] args) {
//Pefinimos un arreglo con 10 posiciones
int num[]=new int [10];
//Recorremos el array
//axzay.lenght indica 1a longitud del arreglo, en
este caso, devuelve 10
for (int i=0, multiplo=5;icnum.length;it+,
mult iplo+=5) {
num[i]= multiplo;
System. out .printin (num[i]);
Como vemos en el ejemplo anterior, para saber la longitud del
array usamos el atributo length.
Matriz
El array bidimensional 0 matriz se puede considerar como un
vector de vectores.
Por consiguiente, se trata de un conjunto de elementos, todos del
mismo tipo, en el cual el orden de los componentes es significativo
yen el que se necesita especificar los subindices para que se
identifique cada elemento del arreglo
% www.redusers.comaes JAVA
Figura 13.
Representacién
grafica que indica el
funcionamiento de
tun arreglo de dos
dimensiones 0 matriz.
i
Columna 1
Columna 2
Columna 3
Columna 4
Columna 5
Columna 6
Si se visualiza un arreglo unidimensional, se puede considerar como una
columna de datos; un arreglo bidimensional es un grupo de columnas.
EI funcionamiento de las matrices suele ser un tanto abstracto, pues
es necesario entender su uso practico.
Elementos
Figura 14. Ejemplo
Mimatrie 9 grafico en el que
vvernos que podemos
1 aproximarnos al uso
préctico de una matrz.
2
a
www.redusers.com 74, ESTRUCTURAS DE CONTROL Y ARREGLOS: ees
Array multidimensional
Un array multimensional retine dos o mas arrays unidimensionales;
podemos definirlo de tres dimensiones, cuatro dimensiones, hasta de
n-dimensiones. En general, un array de n-dimensiones requiere que
los valores de n-indices puedan ser especificados para identificar un
elemento individual del array. Si cada componente de un array tiene
n-indices, el array se dice que es solo de n-dimensiones, es decir, como
si fuera una tabla.
Este tipo de array se crea igual que un array unidimensional,
solo hay que afiadir un corchete mas con un tamafo en la definicién
del array.
Punto
Tiempo| 1 Zz 3
Figura 15. Ejemplo
practico que nos presenta
el funcionamiento de
un arreglo con varias
dimensiones.
Veamos un ejemplo en el que definimos un array multidimensional:
public static void main(string[] args) (
//Pefinimos un array de 3 filas x 5 columnas
int array[][]= new int [3] [5];
//asignamos un 5 al array, en la fila 0 columna 1
array(0][1] = 5;
8 www.redusers.comaes JAVA
Siguiendo esta dindmica, podemos crear arreglos tridimensionales
© de cuantas dimensiones necesitemos. Con esto ahorraremos espacio
en la codificacién y en la memoria. En el ejemplo anterior, nos hemos.
ahorrado la declaracién de 15 variables.
Ordenar un array
La forma de ordenar un array es muy importante a la hora de trabajar
con estos elementos. Hay varias maneras de hacerlo, tanto con
numeros como con cadenas; a continuacién las conoceremos.
Intercambio
Consiste en comparar el primer valor con el resto de las posiciones
posteriores, cambiando el valor de las posiciones en caso de que el
segundo valor sea menor que el primer valor comparado. Veamos un
ejemplo utilizando nameros
public static void intercambio(int lista[]){
//¥saremos un bucle anidado
for(int
ji< (Lista. length-1) ;i++) {
for(int j=it1;jlistal3]) (
//aqat intercambiamos los valor
int variableauxiliar=lista[i];
Los arreglos y la memoria
Los arreglos ocupan espacio de memoria y, al igual que los demas objetos, se
crean con la palabra clave new. También debemos especificar el tipo de cada
elemento y el nlimero de ellos que se va a requerir. Esta expresién dewuelve una
referencia que puede almacenarse en una variable tipo arreglo. Recordemos la
importancia que tiene el uso de la memoria en los programas; aunque Java hace
uso de un garbage, hay que tender a ser ahorrativos con él
www.redusers.com 94, ESTRUCTURAS DE CONTROL Y ARREGLOS: ees
lista[i}=1ista(s];
lista[3]=variableauxiliar;
zando cadenas:
Ahora veamos un ejemplo uw!
public static void intercambioTextos (String lista[]){
//9saremos un bucle anidado
for(int i=0;i<(lista.length-1) ; i++) (
for(int j=it1; j0) {
//Intercambiamos los valores
String variableAuxiliar-lista[i];
lista[i]=lista[j];
Lista[4]=variableAuxiliar;
d
Burbuja
Este método, conocido como bubble sort, consiste en comparar el
primero con el segundo; si el segundo es menor que el primero, se
intercambian los valores. Después, el segundo con el tercero y asi
sucesivamente; cuando no haya ningun intercambio, el array estara
ordenado. Este método tiene un inconveniente: mientras mas elementos
haya que ordenar, mas tardara en hacerlo. Veamos un ejemplo de cédigo:
public static void burbuja (int lista]){
Ant cuentaIntercambios=0;
//Se usaré un bucle anidado y saldré cuando el
arreglo esté ordenado
100 www.redusers.comaes JAVA
for (boolean ordenado
for (int i=0;ilistali+1])(
//acé intercambiamos valore:
int variableauxiliar=lista[i];
lista[i]=lista[i+1];
Lista [it1]=variableAuxiliar;
//indicamos que hay un cambio
‘cuentaintercambios++;
y
//Si no hay intercambios
if (cuentaIntercambios==0) {
ordenado=true;
es que est4 ordenado
?
//Se inicializa la variable para que empiece
a contar nuevamente
‘cuentaIntercambios=0;
Quicksort
Este método consiste en ordenar un arreglo mediante un pivote, que
es un punto intermedio en el arreglo. En otras palabras, se ordenan
pequefios trozos del arreglo: a la izquierda estan los menores a ese
pivote y, a la derecha, los mayores a este. Después se vuelve a calcular
el pivote de trozos de listas.
Para usar este método debemos recurrir a la recursividad; pasamos
como parametro el arreglo, su posici6n inicial y su posicién final.
El uso de este método mejora el rendimiento aun teniendo muchos
valores que ordenar. Veamos un ejemplo de su uso
public static void quicksort (int listal{], int izq, int der){
Listal[ (i+3)/21;
www.redusers.com 1014, ESTRUCTURAS DE CONTROL Y ARREGLOS ees
do {
while (1istal[i]pivote) (
3
d
if (i<=5)1
int aux=listal [1];
listal[iJ]=listal (31;
listal[j}=aux;
att;
5
d
while (i<=3);
if (izac3){
quicksort (listal, izq, 3);
)
if (iTambién podría gustarte
Go
Aún no hay calificaciones
Go
307 páginas
Angularjs Es
Aún no hay calificaciones
Angularjs Es
255 páginas
Libro de JAVA
Aún no hay calificaciones
Libro de JAVA
241 páginas
JAVA
Aún no hay calificaciones
JAVA
234 páginas
Introduccion 
Aún no hay calificaciones
Introduccion
4 páginas