Mod 6 2021
Mod 6 2021
Mod 6 2021
Índice
Conociendo Java
¿Qué es Java? ..............................................................................2
Programar con Apache NetBeans .................................................3
¿En Java cómo se escribe el código? ...........................................5
Estructuras Estáticas - Arreglos (Arrays)
Vectores y Matrices .......................................................................11
Colecciones
Estructuras Dinámicas Collections ................................................19
Excepciones
Manejo de Excepciones .................................................................27
Métodos en Java ...........................................................................31
¿Qué es Java?
Java es una tecnología que se usa para el desarrollo de aplicaciones
multiplataforma. Esta tecnología se compone de un lenguaje de programación y
una plataforma informática que se utiliza para el desarrollo de aplicaciones web,
aplicaciones de escritorio o en aplicaciones móviles. Fue comercializada por
primera vez en 1995 por Sun Microsystems.
Por ahora solo necesitamos saber instalarlo y después poco a poco iremos
conociendo como son las librerías que tiene dentro.
Java es, a partir de 2012, uno de los lenguajes de programación más populares en
uso, particularmente para aplicaciones de cliente-servidor de web. Nosotros
conoceremos más a fondo este lenguaje de programación para poder usarlo.
Debemos aprender cómo se escribe el código para que funcione y haga lo que
necesitamos, es decir, aprender las reglas del lenguaje o sintaxis para que compile
sin errores.
Deberás ir investigando poco a poco todo lo que ofrece el IDE NetBeans que
puedan facilitarte las cosas al momento de programar, como por ejemplo:
2. Instalar NetBeans
Una vez que hayamos explorado las ventanas y creado un proyecto en Apache
NetBeans, veamos cómo el IDE te va a ayudar no solo a escribir el código sino
también a aprender más sobre Java mostrándote documentación además de
recordarte cómo se escribe el código. Así que cuanto más aprendas a usar el IDE,
más fácil se te hará programar y aprender.
Alt-Insert: Genera código dependiendo de las posibilidades desplegando un menú
de opciones.
for y a continuación la tecla Tab: Obtienes un bloque de código para for listo para
usarse.
Acerca de los programas Java, es muy importante tener en cuenta los siguientes
puntos:
Palabras reservadas
Java como cualquier otro lenguaje de programación tiene palabras reservadas que
no puedes utilizar porque son lenguaje utilizado internamente. En la imagen
siguiente te dejamos la lista de estas palabras.
Identificadores de Java
Todos los componentes de Java requieren nombres. Los nombres utilizados
para clases, variables y métodos se denominan identificadores.
Paquetes Java
En palabras simples, es una forma de categorizar las clases y las interfaces. Al
desarrollar aplicaciones en Java, se escribirán cientos de clases e interfaces en un
programa, por lo que categorizar estas clases es una necesidad y hace la vida
mucho más fácil.
Lo último que tienes que saber de los paquetes es: para utilizar las clases que
están organizadas en un paquete se deben importar, te dejamos una imagen en
donde se muestra cómo se importa un paquete:
Modificadores de Java
Al igual que otros lenguajes, es posible modificar c lases, métodos, etc. ,
Mediante el uso de modificadores. Hay dos categorías de modificadores:
Variables en Java
Ya sabemos sobre las variables, lo que debemos aprender o conocer en el lenguaje
Java son los tipos que podemos encontrar. Podemos agruparlos para recordarlos, por
un lado, están los tipos de datos primitivos (no son objetos ni tampoco tienen
métodos) y los tipos de datos objeto (que normalmente incluyen métodos). El
siguiente esquema es importante tenerlo en cuenta al momento de programar para
saber qué tipo de datos podemos usar en Java según sea necesario.
1. La declaración.
2. La asignación.
3. La utilización.
Java proporciona la clase Date disponible en el paquete java.util, esta clase encapsula
la fecha y hora actuales.
Este es un método muy sencillo para obtener la fecha y hora actual en Java. Puedes
usar un objeto Date simple con el método toString () para imprimir la fecha y hora
actuales de la siguiente manera:
Vectores y Matrices
Estructuras Estáticas - Arreglos (Arrays)
Los arreglos (o arrays en inglés), son un conjunto de datos que se caracterizan por
almacenarse en memoria de manera contigua, bajo un mismo nombre, pero con
diferentes “índices” o “identificadores” para diferenciar la ubicación de cada uno de
ellos.
Los arreglos son estructuras fijas, es decir, que una vez declarados e inicializados,
mantienen su tamaño durante toda la ejecución del programa. ¿Qué quiere decir
esto? Por ejemplo, si se declara e inicializa un arreglo con 5 posiciones, estas 5 se
mantendrán de principio a fin de la ejecución del programa que se esté
desarrollando sin la posibilidad de cambiar su tamaño.
Los arreglos, al igual que las variables comunes, deben poseer un solo tipo de
dato determinado. Este tipo de dato debe ser único para todos los
elementos que conforman el array con el que se esté trabajando. Observemos un
ejemplo de un arreglo de tipo numérico:
Tipos de Arreglos
Por otro lado, los arreglos bidimensionales son aquellos que poseen dos
dimensiones, es decir, tanto filas como columnas al mismo tiempo. Un ejemplo de
esto son las reconocidas matrices:
Un detalle muy importante a tener en cuenta es que, por convención mundial, los
vectores comienzan su índice en el valor 0. ¿Qué quiere decir esto? Que si
tenemos un vector de 5 posiciones, sus índices irán del 0 al 4, por lo que si
hacemos referencia al índice 5, no estaríamos posicionados en la 5ta posición,
sino en la sexta; esto, al tratarse de un vector de únicamente 5 posiciones
provocaría un error por desbordamiento.
Recorrer un vector es bastante sencillo y la estructura repetitiva for nos brinda una
gran ayuda. Ahora supongamos que el vector se encuentra vacío y lo que se
desea realizar es permitirle al usuario la posibilidad de cargar los vectores por
teclado. Para ello, será necesario utilizar una clase especial llamada Scanner.
Las matrices son arreglos bidimensionales, es decir, poseen dos dimensiones para
recorrer, en este caso filas y columnas. Así como en los vectores es necesario un
índice para identificar cada una de sus posiciones, en las matrices se utilizan dos
índices, uno para identificar las filas y otro para las columnas, de esta manera la
posición de nuestro arreglo bidimensional estará dada por dos índices al mismo
tiempo tal y como puede verse en la siguiente ilustración:
Las matrices se declaran, inicializan y asignan de forma muy similar a los vectores,
con la diferencia de que en lugar de utilizar un solo conjunto de corchetes [] para
especificar las posiciones, ahora utilizaremos dos [][], uno para especificar el índice
de las filas y otro para el índice de las columnas:
Una vez declarada e inicializada una matriz, es posible asignarle diferentes valores
en cada una de sus posiciones a partir de dar a conocer el índice para las filas y
para las columnas en conjunto con los valores que se asignarán. Un ejemplo de
esto a nivel código puede verse en a continuación:
Al igual que en los vectores, los valores de las filas y columnas siempre comienzan
en 0, en donde el valor del primer par de corchetes pertenece siempre a las filas y
el segundo a las columnas sin excepción.
El recorrido de las matrices es un poco más complejo que el de los vectores. Esto
se debe a que no tenemos únicamente una dirección de recorrido, sino dos, tanto
filas como columnas al mismo tiempo.
Así como en los vectores es posible realizar la carga de datos a través del teclado
solicitándole a un usuario que lo haga, también se puede realizar la misma acción
con las matrices mediante la clase Scanner:
● List
● Set
● Map
Si bien existen distintos tipos de Collections, las más utilizadas son sin duda las
Listas, las cuales se especificarán en mayor detalle a continuación.
Collection List
Las listas son consideradas como un conjunto de elementos relacionados entre sí
que tienen un determinado orden. La principal característica de las listas (como
toda colección) es el hecho de poseer un tamaño y estructura dinámicos, por lo
que pueden cambiar durante el tiempo de ejecución de un programa.
● ArrayList
● LinkedList
● Stack
ArrayList
Tal y como lo expresa su nombre, son considerados arreglos dinámicos que
permiten almacenar elementos. Tiene la característica de heredar de la clase
AbstractList la cual implementa al mismo tiempo la interface List, es por eso que es
considerada como un tipo de lista.
Módulo 6 – Programación con Java 21
2021 Año de homenaje
al premio Nobel de medicina
Dr. César Milstein
Como son arreglos, cada una de sus posiciones tiene un índice determinado, por
lo cual se puede acceder a cualquier posición de forma aleatoria, como así
también de manera secuencial recorriendo posición a posición.
Una contra de los ArrayLists es el hecho de que poseen una manipulación lenta,
dado que generalmente para hacer algún cambio es necesario recorrer el arraylist
completo. Un ejemplo del funcionamiento de los mismos podemos verlo a
continuación:
Los Arraylists al igual que los arreglos comunes y corrientes, deben ser declarados
e inicializados. Un Arraylist siempre será declarado como una Lista y especificado
su tipo al crear una nueva instancia. Te mostramos un ejemplo a nivel código de la
declaración y asignación:
En los arreglos estáticos es posible asignar valores a cada una de las posiciones,
sin embargo, en los ArrayLists esto no es posible, sin embargo, existe una función
específica para la incorporación de nuevos elementos a la lista. Esta función es
conocida como add y un ejemplo de la misma puede verse en la siguiente imagen.
Es importante recordar que en los ArrayLists el primer elemento que sea ingresado
será el primero en ser tratado:
Carga de ArrayLists
Por otro lado, los ArrayLists también pueden ser recorridos para visualizar cada
uno de sus elementos y existen dos formas de hacerlo, ambas mediante la
estructura repetitiva for, tal y como con los arreglos estáticos. Ejemplos de estas
opciones de recorrido:
Linked List
Por otro lado, las listas enlazadas también permiten duplicados entre sus
elementos, con la ventaja, además, de que poseen una manipulación mucho más
rápida que los ArrayLists.
Las LinkedLists tienen la característica de poder ser tratadas no solo como listas,
sino también como colas o como pilas, teniendo la capacidad de permitir llevar a
cabo inserciones o eliminaciones al principio o al final de la colección.
Aunque parecen muy similares por las clases de las cuales heredan o por
implementar la misma interfaz List, tanto ArrayLists como LinkedLists tienen sus
diferencias, caracterizándose (en primera medida) por las posiciones contiguas o
no de cada uno de sus elementos, como así también el hecho de que los
ArrayLists utilizan índices y solo permiten inserción al final de la lista a diferencia
de las listas enlazadas, que si bien no poseen índices, permiten inserciones al
principio o al final. Te mostramos un ejemplo comparativo en la siguiente imagen:
Ejemplo comparativo
Stack
Una colección de tipo Stack representa una pila de objetos que se caracteriza por
utilizar el modelo LIFO (Last In First out), es decir, el último elemento que ingresó
será el primero en salir. Si nos imagináramos una pila de cajas que tengamos una
encima de la otra, la primera que sacaríamos no sería la que está más cerca del
suelo, sino la que esté más arriba de la pila. Una stack, cumple exactamente este
mismo concepto. Stack extiende de la clase Vector, la cual implementa la interface
List.
Stack tiene una serie de métodos propios que utiliza para realizar diferentes
acciones. Entre algunos de estos métodos se encuentran:
● isEmpty: tal como lo dice su nombre, verifica si la pila está vacía o no (true
si es así o false si está cargada).
Manejo de Excepciones
Excepciones
Las excepciones en Java, al igual que en la vida real, son situaciones o eventos
que se pueden producir y que rompen el flujo normal de un conjunto de acciones
que se estén realizando. Por ejemplo, en la vida diaria si no pudimos presenciar un
examen por estar enfermos, el profesor puede hacer una “excepción” y volver a
tomarnos el examen otro día. No es una situación común (por suerte no es común
enfermarse todos los días), pero si es una acción que cambiará totalmente los
pasos que proseguirán. De igual manera, en Java, las excepciones rompen el flujo
normal de ejecución de una aplicación.
Tipos de Excepciones
Captura de Excepciones
En Java para capturar las excepciones que se hayan podido producir se utilizan las
expresiones “try” (intentar) y “catch” (atrapar) para delimitar el código que es
necesario controlar ante la posible aparición de una excepción. Cuando se
produce una excepción, el bloque “try” termina y “catch” captura o atrapa la
excepción y muestra o ejecuta el código que está pensado para esta excepción en
cuestión:
Además del try y catch que son las sentencias por excelencia del manejo de
excepciones, también existen otros bloques y sentencias que nos permiten el
manejo de las mismas. Entre ellos se encuentran:
Métodos en Java
Un método Java es una colección de declaraciones que se agrupan para realizar
una operación. Cuando llamas al System.out. println () , por ejemplo, el sistema
en realidad ejecuta varias declaraciones para mostrar un mensaje en la consola.
Ahora aprenderás a crear tus propios métodos con o sin valores de retorno, a
invocar un método con o sin parámetros y a aplicar la abstracción de métodos en
el diseño del programa.
Métodos vs Funciones