Documentos de Académico
Documentos de Profesional
Documentos de Cultura
05 Universidad de Java Desde Cero 5
05 Universidad de Java Desde Cero 5
Hola, te saluda nuevamente Ubaldo Acosta. Espero que estés listo para comenzar con esta
lección..
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
Curso de Programación con Java
Vamos a estudiar los tipos de excepciones en el API de Java. Todas las clases en Java descienden de la clase
Throwable y posteriormente existen una jerarquía de clases, sin embargo en general existen dos tipos de
excepciones con las que vamos a trabajar, las que se conocen como checked exceptions y las uncheked
exceptions. Veamos en qué consiste cada una:
A) Checked Exceptions o Excepciones que heredan de la clase Exception: Si nuestro programa arroja este tipo
de excepción el compilador solicitará realizar alguna actividad con este tipo de excepción. Más adelante
veremos como procesar una excepción de este tipo, por ejemplo procesarlas dentro de un bloque try/catch o
arrojándolas en la declaración del método. Un ejemplo de este tipo de excepción de tipo checked exception es
la clase SQLException, la cual desciende de la clase Exception y es arrojada cuando existen algún problema con
temas relacionados con el uso y manejo de bases de datos.
B) Uncheked Exceptions o Excepciones que heredan de la clase RuntimeException: Este tipo de excepciones NO
estamos obligados a procesarlas, por lo que es opcional el uso del bloque try/catch o en la declaración del
método. Este tipo de excepciones también se les conoce como excepciones en tiempo de ejecución. Ejemplos
de este tipo de excepciones son: NullPointerException, ArrayOutOfBoundsException, entre muchas otras.
Existen una polémica respecto a cual de los dos tipos de excepciones utilizar y la estrategia a seguir respecto al
manejo de excepciones en nuestros programas. Sin embargo en los últimos años existe una tendencia respecto
al uso de las excepciones de tipo uncheked exceptions, las cuales no obliga al programador a procesar este tipo
de excepciones y por lo tanto es opcional agregar algún código de manejo de excepciones en nuestros
métodos, obteniendo así un código más limpio y que permite escoger al equipo de programadores si procesan
las excepciones agregando algún código para ello o simplemente dejan un código más limpio y se encargará de
procesar la excepción quien finalmente esté en necesidad de realizar dicho procesamiento.
Ejemplos de equipos de trabajo que han optado por el uso de unchecked exceptions es el equipo de trabajo del
framework de Spring, el cual optó no sólo por utilizar este tipo de excepciones, sino que al usar el framework de
Spring muchas de las excepciones de tipo checked, las convirtió a tipo uncheked, por lo que es opcional
procesar, en la mayoría de los casos, las excepciones que arroja el framework de Spring.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
Curso de Programación con Java
Vamos a revisar a continuación la sintaxis general para el manejo de excepciones, para ello
utilizamos el bloque try/catch.
Podemos observar que el código que posiblemente arroja la excepción debe estar envuelto por el
bloque try. Y si queremos procesar la excepción lo podremos hacer dentro del bloque catch. Este
bloque es el que recibe el tipo de excepción que queremos procesar, pudiendo ser varios bloques
catch y por cada bloque un tipo de excepción distinto. Cabe mencionar que el orden para
procesar más de una excepción será procesar en primer lugar la excepción que sea la clase de
menor jerarquía y finalmente la excepción de mayor jerarquía según la jerarquía de clases que
describa a las excepciones que vamos a procesar.
Un ejemplo de una excepción, es acceder a un elemento de un arreglo fuera de rango, esto nos
arrojaría una excepción de tipo ArrayOutOfBoundException, por lo que por medio del bloque
try/catch/finally es posible procesar este tipo de excepciones.
El bloque try/catch es opcional agregarlo para las excepciones de tipo unchecked exceptions, es
decir las excepciones que descienden de la clase Runtime Exception. A lo largo de los ejercicios
que vayamos creando iremos viendo varios ejemplos tanto de excepciones de tipo checked y
unchecked exceptions, y así irnos familiarizando con cada una de este tipo de excepciones.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
Curso de Programación con Java
Vemos que la clase padre de todas las clases de excepción es la clase Throwable, y a
partir de esta tendremos las excepciones más importantes. Las excepciones de tipo
Error son las que normalmente son arrojadas por la máquina virtual de Java, por lo
que normalmente serán errores de los que no nos podremos recuperar, en cambio
las excepciones de tipo Exception o RuntimeException serán provocadas por
nuestro código o el código de otros que estemos utilizando en nuestro programa.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
Curso de Programación con Java
Así que debemos estar familiarizados con estos términos ya que son de
los que más utilizaremos cuando tengamos problemas en nuestras
aplicaciones Java, y veremos cómo analizar los errores a los que nos
enfrentemos y así empecemos a ganar experiencia para darles solución.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 8
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 9
Curso de Programación con Java
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
Además agregamos nuevos cursos para que continúes con tu preparación como programador Java
profesional. A continuación te presentamos nuestro listado de cursos:
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 10
www.globalmentoring.com.mx
Crear un ejercicio para uso básico de excepciones. Al finalizar
deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto :
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Archivo OperationException.java :
package domain;
/**
*
* @author Ubaldo
*/
public class OperationException extends Exception {
www.globalmentoring.com.mx
Archivo Division.java:
package domain;
//atributo de la clase
private int numerador;
//atributo de la clase
private int denominador;
if (denominador == 0) {
//throw new IllegalArgumentException("Denominador igual a cero");
throw new OperationException("Denominador igual a cero");
}
this.numerador = numerador;
this.denominador = denominador;
}
import domain.*;
try {
Division division = new Division(10, 0);
division.visualizarOperacion();
} catch (OperationException oe) {
System.out.println("Ocurrió un error!!!");
oe.printStackTrace();
}
}
www.globalmentoring.com.mx
El resultado es como sigue:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Archivo ManejoExcepcionesArg.java:
package manejoexcepciones1;
import domain.*;
}
}
www.globalmentoring.com.mx
Ejecutamos el proyecto, pero pasando argumentos:
www.globalmentoring.com.mx
Ejecutamos el proyecto, pero pasando argumentos:
www.globalmentoring.com.mx
Ejecutamos el proyecto, pero pasando argumentos:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica el concepto de
excepciones en Java.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
CURSO DE PROGRAMACIÓN CON JAVA
Hola, te saluda nuevamente Ubaldo Acosta. Espero que estés listo para comenzar con esta
lección..
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
Curso de Programación con Java
Vamos a revisar ahora la cláusula throw. Esta palabra reservada nos permite LANZAR
explícitamente una excepción.
Por ejemplo, podemos utilizar una clase de excepción que extiende de la clase Exception o
cualquier otra clase de tipo exception y en conjunto con el operador new, crear un nuevo objeto
de esta clase y así arrojar una excepción de manera explícita.
En el código podemos observar cómo dentro del métodoX se lanza una nueva excepción de tipo
Exception, utilizando la palabra reservada throw seguida de new y la clase de tipo Exception que
queremos instanciar. Normalmente las clases de excepción en su constructor tiene una cadena
que será el mensaje que se mandará al stacktrace al momento en que ocurra el problema o se
lance la excepción.
Posteriormente lo que observamos es el que método main al hacer uso de metodoX obliga a
procesar la excepción por medio de un bloque try/catch, o a declarar en la firma del método que
es metodoX puede llegar a lanzar la excepción de tipo Exception, y lo vemos en la firma del
método por medio de la palabra throws Exception.
De hecho, con un proceso similar es como nuestra aplicación pueden convertir excepciones de
tipo Exception (checked exceptions) a tipo RuntimeException (uncheked exceptions), creando
nuestras propias clases de tipo runtime exception y al momento de envolver una excepción de
tipo Exception con un bloque try/catch, se puede relanzar una excepción de tipo runtime
exception, de esta manera no obligamos a los métodos que utilicen nuestros métodos a que
declaren el tipo de excepción que se puede arrojar, ya que se han convertido a tipo runtime
exception. Más adelante vamos a ver cómo realizar esta conversión.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
Curso de Programación con Java
Vamos a ver a continuación cómo podemos crear nuestras propias clases de excepción,
las cuales pueden extender de la clase Exception, o RuntimeException.
Como observamos en el código, estamos creando una clase de tipo MiExcepcion la cual
hereda de la clase Exception, sin embargo puede extender de cualquier otra clase de
excepción que nos interese. Posteriormente esta clase contiene un constructor el cual
recibe el mensaje que nos servirá para inicializar el atributo mensaje de la clase padre,
mandando a llamar el constructor padre por medio de la palabra super. Y con esto queda
inicializada nuestra excepción.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
Curso de Programación con Java
Vamos a ver a continuación el uso de excepciones al momento de sobrecargar nuestros métodos en Java.
Algunas de las reglas que debemos respetar son:
Un método que sobreescribe a un método padre que declara una excepción SÍ PUEDE:
• No arrojar ninguna excepción, es decir, omitir la excepción en su firma.
• Arrojar una o más excepciones arrojadas por el método padre.
• Arrojar una o más excepciones que son subclases de la excepción arrojada.
Un método que sobreescribe a un método padre que declara una excepción NO PUEDE:
• Arrojar excepciones adicionales no arrojadas en el método padre.
• Arrojar superclases de las excepciones arrojadas por el método padre.
En el código mostrado observamos una clase padre (ArrojarExcepcionA) y dos clases hijas (ArrojarExB y
ArrojarExC), las cuales sobreescriben el metodoX definido en el padre. Lo que estamos aclarando en este
código las excepciones que podemos utilizar en la firma de los métodos sobreescritos por las clases hijas.
Por un lado observamos que la clase ArrojarExB en la firma del metodoX en lugar de utilizar la misma
excepción que en la firma del método de la clase padre (MiExcepcion), se utiliza una subclase
(MiExcepcionHija), de esta manera es claro que no necesariamente debemos utilizar la misma clase de
excepción en la firma del método, sino que puede ser alguna clase dentro de la jerarquía de clases de
excepción que estamos utilizando, siendo siempre subclases, y no superclases.
Por otro lado, observamos en la clase ArrojarExC que se utiliza precisamente una super clase (Exception)
de la clase de excepción utilizada en el padre (MiExcepcion), y por lo tanto esto no es válido y existe un
problema de compilación en nuestro código. Más adelante veremos un ejemplo de este tipo de manejo de
excepciones en la firma de los métodos que se sobreescriben.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 8
Curso de Programación con Java
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
Además agregamos nuevos cursos para que continúes con tu preparación como programador Java
profesional. A continuación te presentamos nuestro listado de cursos:
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 9
www.globalmentoring.com.mx
Crear un ejercicio para uso más avanzado de excepciones. Al
finalizar deberemos observar lo siguiente:
www.globalmentoring.com.mx
www.globalmentoring.com.mx
Vamos a crear el proyecto :
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Archivo AccesoDatosEx.java:
package excepciones;
www.globalmentoring.com.mx
Archivo EscrituraDatosEx.java:
package excepciones;
www.globalmentoring.com.mx
Archivo LecturaDatosEx.java :
package excepciones;
www.globalmentoring.com.mx
Archivo AccesoDatos.java :
package datos;
import excepciones.AccesoDatosEx;
www.globalmentoring.com.mx
Archivo ImplementacionMySql.java :
package datos;
import excepciones.*;
@Override
public void insertar() throws AccesoDatosEx {
if (simularError) {
throw new EscrituraDatosEx("Error de escritura de datos");
} else {
System.out.println("Insertar desde MySql");
}
}
@Override
public void listar() throws AccesoDatosEx {
if (simularError) {
throw new LecturaDatosEx("Error de lectura de datos");
} else {
System.out.println("Listar desde MySql");
}
}
@Override
public void simularError(boolean simularError) {
this.simularError = simularError;
}
} www.globalmentoring.com.mx
Archivo ManejoExcepciones2.java (Parte 1):
package manejoexcepciones2;
import datos.*;
import excepciones.*;
www.globalmentoring.com.mx
Archivo ManejoExcepciones2.java (Parte 2):
private static void ejecutar(AccesoDatos datos, String accion) {
if ("listar".equals(accion)) {
try {
datos.listar();
}
//Si se van a procesar varias excepciones de la misma jerarquia
//siempre se debe procesar primero la excepcion de menor jerarquia
//y posteriormente la de mayor jerarquia
catch (LecturaDatosEx ex) {
System.out.println("Error lectura: Procesa la excepcion mas especifica de lectura de datos");
} catch (AccesoDatosEx ex) {
System.out.println("Error Acceso datos: Procesa la excepcion mas generica de acceso a datos");
} catch (Exception ex) {
System.out.println("Error general");
}
finally {
System.out.println("Procesar finally es opcional, siempre se ejecutara sin importar si hubo error o no");
}
} else if ("insertar".equals(accion)) {
try {
datos.insertar();
} catch (AccesoDatosEx ex) {
System.out.println("Error acceso datos: Podemos procesar solo la excepcion mas generica");
}
finally{
System.out.println("Procesar finally es opcional, siempre se ejecutara sin importar si hubo error o no");
}
}
else
System.out.println("No se proporciono ninguna accion conocida");
}
} www.globalmentoring.com.mx
El resultado es como sigue:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica conceptos más
avanzados de excepciones en Java.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
CURSO DE PROGRAMACIÓN CON JAVA
Hola, te saluda Ubaldo Acosta. Bienvenidos nuevamente a este curso de Programación con Java.
Comencemos de inmediato.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
CURSO DE PROGRAMACIÓN CON JAVA
Como podemos observar en la figura, los datos que podemos observar pueden tener
cierto orden, además de posiblemente necesitemos agregar más registros conforme
vamos necesitando, y como sabemos en un arreglo debemos declarar el número de
elemento que contendrá el arreglo. Una colección es más flexible y permite ir agregando
elementos conforme vayamos necesitando de manera más dinámica, además de que
puede tener métodos de ordenamiento, búsqueda, evitar valores duplicados, entre
muchas otras características, todo depende del tipo de colección que utilicemos.
Existe un API ya definida en Java, en la cual se tiene un conjunto de clases que permiten
resolver problemas específicos, como son: Listas doblemente ligadas, Árboles, Mapas de
Datos, entre muchas otras clases. En esta lección veremos algunas de las colecciones más
utilizadas, y con ello podremos familiarizarnos con esta API de Colecciones.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
CURSO DE PROGRAMACIÓN CON JAVA
El API de Colecciones, de manera resumida se divide en Listas, Sets (Conjuntos de datos), y Mapas (Llave relacionado a un
dato), los mapas utilizan funciones hash. Esta API permite reducir el esfuerzo de programación y reutilizar código con
algoritmos existentes.
Una función hash es cualquier función con un algoritmo definido que convierte datos complejos a un número entero, con el
objetivo de agilizar la búsqueda u ordenamiento de los elementos en un conjunto de datos. Esto ya lo hemos comentado a
grandes rasgos cuando explicamos el tema del método hashCode, el cual regresa un valor entero combinando los atributos
de una clase, y así poder asignar un entero único a cada objeto que creamos, y de esta manera el ordenamiento de objetos
es más ágil, ya que cualquier confusión respecto a nombres similares o cualquier otro dato similar, los valores hashCode nos
servirán precisamente para diferenciar y ordenar correctamente nuestros elementos. La buena noticia es que nosotros solo
debemos preocuparnos por implementar correctamente el método hashCode, el cual incluso los IDEs nos ayudan en muchos
casos para crear estos métodos de manera más simple y así los ordenamientos o búsquedas en las colecciones serán más
eficientes al utilizar nuestros objetos.
El API de las colecciones en Java contiene un conjunto de Clases e Interfaces, las cuales podemos observar algunas de ellas
en el diagrama de clases mostrado. Vemos que todas la mayoría de las clases desciende de la interface Collection, y de allí
descienden las interfaces de Set y List, y de allí obtenemos clases fundamentales como son HashSet, ArrayList y Vector, entre
muchas otras más. Por otro lado tenemos la interface Map, y obtenemos clases tan importantes como la clase HashMap, y
cualquier otra clase que necesite de relacionar valores de tipo value-key o valor-llave. Veamos ahora que significan algunas
de las clases más utilizadas en el API de Colecciones.
Un Set, es una colección NO ORDENADA de elementos. No se permiten elementos duplicados. Por lo que cualquier elemento
duplicado no se insertará.
Un Mapa relaciona una llave (key) con un valor, formando una especia de tabla de datos.
Existen clase de apoyo para trabajar con Colecciones como son Enumeration e Iterator, y para comparar los elementos se
utiliza la interface Comparator. Estos son solo algunos de los temas que tienen que ver con el API de Colecciones, el cual es
bastante amplio y es muy interesante estudiar a fondo, así que una vez que tengamos las bases del uso de sus principales
clases, podremos explorar a más detalle dichas clases.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
CURSO DE PROGRAMACIÓN CON JAVA
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
Por el experto: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
Poner en práctica el concepto de colecciones en Java. Al
finalizar deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Archivo ManejoColecciones.java:
package manejocolecciones;
Map miMapa = new HashMap();
import java.util.*; //Lave, valor
miMapa.put("1", "Juan");
public class ManejoColecciones { miMapa.put("2", "Carlos");
miMapa.put("3", "Rosario");
public static void main(String args[]) { miMapa.put("4", "Esperanza");
List miLista = new ArrayList(); //Se imprimen todas las llaves
miLista.add("1"); imprimir(miMapa.keySet());
miLista.add("2"); //Se imprimen todos los valores
miLista.add("3"); imprimir(miMapa.values());
miLista.add("4");
//Elemento repetido }
miLista.add("4");
imprimir(miLista); private static void imprimir(Collection coleccion) {
for (Object elemento : coleccion) {
Set miSet = new HashSet(); System.out.print(elemento + " ");
miSet.add("100"); }
miSet.add("200"); System.out.println("");
miSet.add("300"); }
//No permite elementos repetidos, lo ignora }
miSet.add("300");
imprimir(miSet);
www.globalmentoring.com.mx
Ejecutamos el proyecto:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
Con este ejercicio hemos puesto en práctica el concepto de
colecciones en Java.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
Curso de Programación con Java
Hola, te saluda nuevamente Ubaldo Acosta. Espero que estés listo para comenzar con esta
lección.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
Curso de Programación con Java
Vamos a estudiar en esta lección los tipos genéricos en Java. Los tipos genéricos o generics, se introdujeron en la
versión 1.5 de Java SE, y fue uno de los mayores cambios para esta versión.
Anteriormente teníamos que saber exactamente el tipo de datos que íbamos a utilizar para poder pasar por ejemplo
parámetros a una función, o para instanciar una clase, sin embargo con ayuda de los genéricos podemos dejar
pendiente el tipo de dato hasta el momento de instanciar alguna clase genérica, o del paso de un parámetro
genérico.
Podemos observar en el código mostrado una clase que define un tipo genérico con el uso del operador diamante <>
en la definición de la clase. Esto quiere decir que el tipo lo conoceremos hasta el momento en que sea utilizada esta
clase, y por ello se conoce como tipo genérico.
La T significa básicamente un tipo genérico que será reemplazado al momento de utilizar esta clase, por lo que la T es
simplemente el nombre que le damos al tipo genérico que vamos a utilizar. Existen varios nombres que podemos
utilizar como veremos en la siguiente lámina.
Posteriormente en la clase definimos un atributo del mismo tipo T, el cual lo inicializaremos por medio del
constructor de esta clase, y podemos ver que cuando utilizamos esta clase en el método main mostrado, al momento
de crear el objeto de esta clase, especificamos por medio del operador diamante el tipo de dato que nos interesa
utilizar.
Y aquí es aquí donde el uso de clases genéricas es muy útil, ya que nos permite definir el tipo de dato que queremos
utilizar hasta el momento de instanciar un objeto de nuestra clase, y así definir funcionalidad cada vez más genérica
valga la redundancia, de hecho al utilizar interfaces, clases abstractas y polimorfismo ya hemos creado varios
métodos genéricos ya que pueden ser utilizados por varios tipos de datos, sin embargo, este concepto de Generics va
un paso más allá, y nos permite definir el tipo a utilizar y crear métodos aún más genéricos de los que hemos creado.
Finalmente el método obtenerTipo() nos permite mandar a consola el tipo de dato que hemos definido para la clase
genérica, y así como hemos utilizado el tipo <Integer> para instanciar nuestra clase genérica, podemos utilizar
cualquier tipo de datos, sin embargo no podemos utilizar tipos primitivos, sino solo tipos Object.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
Curso de Programación con Java
El tema de genéricos, fue mayormente utilizado para cambiar varias de las APIs de Java, pero en
particular el API de Framework Collections fue de los más beneficiados, ya que como podemos ver,
anteriormente era necesario definir un tipo lista, sin embargo no había una certeza de que
almacenara un solo tipo y así evitar problemas de conversión de objetos al momento de extraer sus
elementos. Por ello anteriormente las listas almacenaban un tipo object, y al momento de extraer el
objeto de la lista el compilador tenia un object, y por tanto era necesario hacer un casting del objeto
extraido, como se observa en el código de la clase SinGenerics.
Sin embargo con las colecciones genéricas, podemos declarar una lista de un tipo en concreto, y
agregar a esta lista solo los tipos o subtipos compatibles según las reglas de downcasting que
mencionamos en el tema de conversión de objetos.
Como podemos observar en el ejemplo de ConGenerics, observamos que para definir la lista estamos
utilizando el operador diamante y estamos especificando que los objetos que podemos agregar a esta
lista son exclusivamente de tipo Integer o subclases del tipo Integer, de esta manera cuando
extraemos los valores de esta lista estamos seguros que serán de un tipo compatible con el tipo
Integer, y por tanto no es necesario hacer un casting o conversión del objeto extraído.
Por lo tanto, las colecciones genéricas ofrecen la seguridad de que en tiempo de compilación los
datos a almacenar son sólo del tipo especificado, eliminan la necesidad de hacer un casting
(conversión de tipos). Solo debemos recordar que se necesita la versión 1.5 o mayor del JDK.
En la figura podemos observar cómo se cambió la definición de las interfaces y clases del API de
Coleccions, y ahora se utilizan tipos genéricos en su definición. Veamos a continuación algunos
ejemplos del uso de colecciones genéricas.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
Curso de Programación con Java
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
Además agregamos nuevos cursos para que continúes con tu preparación como programador Java
profesional. A continuación te presentamos nuestro listado de cursos:
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
www.globalmentoring.com.mx
Crear el ejercicio de Generics. Al finalizar deberemos observar
lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Archivo ClaseGenerica.java:
package manejogenericos;
www.globalmentoring.com.mx
Archivo ManejoGenericos.java:
package manejogenericos;
www.globalmentoring.com.mx
El resultado es como sigue:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica el manejo
básico de tipos genéricos en Java.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
www.globalmentoring.com.mx
Crear el ejercicio de colecciones genéricas en Java. Al finalizar
deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Archivo ManejoColeccionesGenericas.java:
package manejocoleccionesgenericas;
Map<String, String> miMapa = new HashMap<>();
import java.util.*; miMapa.put("1", "Juan");
miMapa.put("2", "Carlos");
public class ManejoColeccionesGenericas { miMapa.put("3", "Rosario");
miMapa.put("4", "Esperanza");
public static void main(String[] args) { imprimir(miMapa.keySet());
List<String> miLista = new ArrayList<>(); imprimir(miMapa.values());
miLista.add("1"); }
miLista.add("2");
miLista.add("3"); static void imprimir(Collection<String> col) {
miLista.add("4"); for (String elemento : col) {
miLista.add("4"); System.out.print(elemento + " ");
imprimir(miLista); }
System.out.println();
Set<String> miSet = new HashSet<>(); }
miSet.add("100"); }
miSet.add("200");
miSet.add("300");
miSet.add("300");
imprimir(miSet);
www.globalmentoring.com.mx
El resultado es como sigue:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica concepto de
colecciones genéricas en Java. Se deja como ejercicio
comparar la sintaxis de este ejercicio con el ejercicio de
colecciones sin utilizar generics, y así observar las
diferencias y ventajas entre cada código utilizado.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
Curso de Programación con Java
Hola, te saluda Ubaldo Acosta. Bienvenida o bienvenido nuevamente. Espero que estés listo para
comenzar con esta lección.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
Curso de Fundamentos de Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
Curso de Programación con Java
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
Además agregamos nuevos cursos para que continúes con tu preparación como programador Java
profesional. A continuación te presentamos nuestro listado de cursos:
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
www.globalmentoring.com.mx
Crear un programa para visualizar las propiedades del sistema
en Java. Al finalizar deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Archivo PropiedadesSistema.java:
package propiedadessistema;
import java.util.*;
www.globalmentoring.com.mx
Resultado dees
El resultado la como
ejecución del proyecto. El resultado puede variar:
sigue:
www.globalmentoring.com.mx
• Con este ejercicio hemos visualizado las propiedades del
sistema, las cuales nos pueden servir para tomar ciertas
decisiones en nuestro código, según el valor de alguna
variable, como el sistema operativo que se está utilizando o
alguna otra variable de nuestro interés.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
CURSO DE PROGRAMACIÓN CON JAVA
Hola, te saluda nuevamente Ubaldo Acosta. Espero que estés listo para comenzar con esta
lección..
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
CURSO DE PROGRAMACIÓN CON JAVA
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
CURSO DE PROGRAMACIÓN CON JAVA
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
CURSO DE PROGRAMACIÓN CON JAVA
Las clases del lado izquierdo son para flujos de tipo char y las clases del
lado derecho son para flujos de tipo byte.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
CURSO DE PROGRAMACIÓN CON JAVA
Ahora veremos las clases del API de Salida en Java. La figura nos
muestra de manera resumida las clases involucradas en el
proceso de escritura.
Las clases del lado izquierdo son para flujos de tipo char y las
clases del lado derecho son para flujos de tipo byte.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
CURSO DE PROGRAMACIÓN CON JAVA
Los flujos (streams) son utilizados para procesar un byte a la vez, son
recomendados para procesar archivos binarios, como son archivos de
tipo Word, Excel, o cualquier formato que es más complejo que un
simple archivo de texto.
Las clases que tiene buffer son utilizadas para procesar más de un
carácter o byte a la vez.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
CURSO DE PROGRAMACIÓN CON JAVA
Veamos ahora como leer datos desde la entrada estándar, esto lo vamos
a lograr por medio de la variable System.in, la cual lee datos de la entrada
estándar.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 8
CURSO DE PROGRAMACIÓN CON JAVA
Una vez que se ha creado este objeto, contiene métodos para simplificar
la lectura de la entrada de datos, tal como el método nextLine, nextInt,
nextFloat, y varios más, los cuales como su nombre nos indica nos
permite leer ya sea una nueva línea, un nuevo entero, un nuevo tipo
flotante respectivamente.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 9
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 10
CURSO DE PROGRAMACIÓN CON JAVA
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
Además agregamos nuevos cursos para que continúes con tu preparación como programador Java
profesional. A continuación te presentamos nuestro listado de cursos:
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 11
www.globalmentoring.com.mx
Poner en práctica el concepto entrada de datos en Java. Al
finalizar deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Archivo EntradaDatos.java:
package entradadatos;
import java.io.*;
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica el concepto de
entrada de datos en Java.
• Esta es una forma muy básica de leer datos, sin embargo nos
permite ir entendiendo el uso de las clases del API de
Entrada de datos en Java.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
www.globalmentoring.com.mx
Poner en práctica el concepto entrada de datos en Java
utilizando la clase Scanner. Al finalizar deberemos observar lo
siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Archivo EntradaDatosScanner.java:
package entradadatosscanner;
import java.util.*;
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica el concepto de
entrada de datos en Java, pero ahora utilizando la clase
Scanner, la cual nos simplifica el proceso de entrada de datos
en Java, sin embargo es importante conocer ambas opciones
para cuando encontremos código con ambas APIs.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
www.globalmentoring.com.mx
Poner en práctica el concepto entrada de datos creando una
calculadora. Al finalizar deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Archivo Operaciones.java :
package calculadora;
www.globalmentoring.com.mx
Archivo CalculadoraEntradaDatos.java :
package calculadoraentradadatos;
import java.util.*;
import static calculadora.Operaciones.sumar;
}
}
www.globalmentoring.com.mx
El resultado es como sigue:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica un ejercicio de
calculadora, pero ahora los valores de entrada son
proporcionados dinámicamente. Con esto pusimos en
práctica la entrada de datos con la clase Scanner, utilizando
el método nextInt(). Existen más métodos que podemos
comenzar a explorar de esta clase.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
Curso de Programación con Java
Hola, te saluda Ubaldo Acosta. Bienvenida o bienvenido nuevamente. Espero que estés listo para
comenzar con esta lección.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
Curso de Programación con Java
En esta lección vamos a estudiar el manejo de archivos en Java. Se utilizan las clases
File, FileWriter y PrintWriter para poder crear un archivo. Es conveniente verificar
que tengamos permisos para escribir el archivo, por ejemplo, podemos crear una
carpeta y asignarle permisos de escritura, de esta manera no tendremos problemas
para crear, leer o modificar el archivo creado.
Una vez creado el archivo, podremos leer y escribir sobre él, a continuación
veremos cómo realizar estos procesos.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
Curso de Programación con Java
Así que dependiendo de lo que necesitemos leer será el tipo de clase que
podemos utilizar. Más adelante veremos un ejemplo de la lectura de
información de un archivo.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
Curso de Programación con Java
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
Curso de Programación con Java
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
Además agregamos nuevos cursos para que continúes con tu preparación como programador Java
profesional. A continuación te presentamos nuestro listado de cursos:
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 8
www.globalmentoring.com.mx
Poner en práctica el concepto de manejo de archivos en Java.
Al finalizar deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Vamos a crear una clase:
www.globalmentoring.com.mx
Archivo Archivos.java:
package utileria; public static void escribirArchivo(String
nombreArchivo) {
import java.io.*; File archivo = new File(nombreArchivo);
try {
public class Archivos { PrintWriter salida = new PrintWriter(new
FileWriter(archivo));
public static void crearArchivo(String String contenido = "Contenido a escribir
nombreArchivo) { en el archivo";
File archivo = new File(nombreArchivo); salida.println(contenido);
try { salida.println();
PrintWriter salida = new PrintWriter(new salida.println("Fin de escritura");
FileWriter(archivo)); salida.close();
salida.close(); System.out.println("Se ha escrito
System.out.println("El archivo se ha correctamente al archivo\n");
creado correctamente\n"); } catch (IOException ex) {
} catch (IOException ex) { ex.printStackTrace();
ex.printStackTrace(); }
}
} }
www.globalmentoring.com.mx
( )
Archivo Archivos.java:
public static void leerArchivo(String public static void anexarArchivo(String
nombreArchivo) { nombreArchivo) {
File archivo = new File(nombreArchivo); File archivo = new File(nombreArchivo);
try { try {
BufferedReader entrada = new PrintWriter salida = new PrintWriter(new
BufferedReader(new FileReader(archivo)); FileWriter(archivo, true));
String lectura; String contenido = "Anexando informacion
lectura = entrada.readLine(); al archivo";
while (lectura != null) { salida.println(contenido);
System.out.println("Lectura: " + salida.println();
lectura); salida.println("Fin de anexar");
lectura = entrada.readLine(); salida.close();
} System.out.println("Se ha anexado la
entrada.close(); informacion correctamente\n");
} catch (IOException ex) { } catch (IOException ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
} }
}
www.globalmentoring.com.mx
Archivo ManejoArchivos.java:
package manejoarchivos;
//Crear un archivo
crearArchivo(NOMBRE_ARCHIVO);
//Escribir a un archivo
escribirArchivo(NOMBRE_ARCHIVO);
//Leer de un archivo
leerArchivo(NOMBRE_ARCHIVO);
//Leer de un archivo
leerArchivo(NOMBRE_ARCHIVO);
}
}
www.globalmentoring.com.mx
El resultado es como sigue:
www.globalmentoring.com.mx
• Probar con el modo debug del IDE y verificar paso a paso.
www.globalmentoring.com.mx
• Con este ejercicio hemos puesto en práctica el concepto de
Manejo de Archivos en Java.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
CURSO DE PROGRAMACIÓN CON JAVA
Hola, te saluda Ubaldo Acosta. Bienvenidos nuevamente a este curso de Programación con Java.
Esta es nuestra lección final, por lo que vamos a realizar un ejercicio donde pondremos en
práctica lo visto en el curso de Programación con Java.
Comencemos de inmediato.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
CURSO DE PROGRAMACIÓN CON JAVA
En este laboratorio final vamos a crear un ejercicio que simule un catálogo de películas. Para este
ejercicio, vamos a almacenar la información del catálogo de películas en un archivo de texto, en una
carpeta definida por nosotros, por ejemplo en la carpeta: c:\catalogoPeliculas\películas.txt
Vamos a crear varios paquetes, cada uno con tareas específicas a desarrollar en el programa.
Paquetes:
A continuación veremos a más detalle cada uno de los paquetes de la aplicación Catalogo de Peliculas a
desarrollar.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
CURSO DE PROGRAMACIÓN CON JAVA
Esta clase nos servirá para representar el objeto Pelicula. En esta aplicación
dejamos simple la definición de este objeto, sin embargo podría tener más atributos
y hacer más compleja esta aplicación, pero el objetivo es que podamos desarrollar
esta aplicación con la estructura planteada, y no agregar más complejidad de la
necesaria para aplicar los conceptos estudiados a lo largo de este curso.
Por ello este objeto se debe codificar con lo indicado en el diagrama de clase
mostrado.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
CURSO DE PROGRAMACIÓN CON JAVA
Esta interfaz define los métodos para interactuar con el archivo que administrará el
catálogo de películas. La clase AccesoDatosImpl es la que finalmente se encargará de
agregar el comportamiento de cada uno de los métodos descritos.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 5
CURSO DE PROGRAMACIÓN CON JAVA
Similar al paquete da datos, este paquete hemos agregado también una interfaz y
una implementación. De esta manera la interfaz de usuario (método main) hará
uso de la interface, y será la implementación de CatalagoPeliculasImpl.java quien
finalmente ejecutará las tareas que sean necesarias para esta aplicación.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
CURSO DE PROGRAMACIÓN CON JAVA
Esta clase representa la inteface con la que el usuario interactua. Esta clase solicita via consola la acción
requerida por parte del usuario, y solicita opciones como:
1.- Iniciar catalogo películas
2.- Agregar película
3.- Listar Películas
4.- Buscar Película
0.- Salir
Esta clase se apoya de la clase Catalogopeliculas para realizar las operaciones que necesita esta
aplicación.
A su vez la variable opción es la que se encargará de almacenar la opción seleccionada por parte del
usuario.
Y el nombre del archivo indica la ruta donde se almacenará el archivo. Por ejemplo, la cadena Java que
se puede utilizar si estamos en Windows es:
"c:\\catalogoPeliculas\\peliculas.txt“
Sin embargo si es otro sistema operativo, como MacOS, la ruta podría ser:
“/Volumes/gm/catalogoPeliculas/películas.txt “
Debemos recordar que la carpeta sobre la que vayamos a trabajar ya debe estar creada y en caso necesario debe
tener permisos de escritura, esto es particular de los requerimientos de cada sistema operativo.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
CURSO DE PROGRAMACIÓN CON JAVA
Según hemos comentado, las opciones que muestra el menú de opciones para el usuario son:
1.- Iniciar catalogo películas
2.- Agregar película
3.- Listar Películas
4.- Buscar Película
0.- Salir
Y como vemos, dependiendo de la opción elegida por el usuario es la acción que se ejecuta. Así
que este es el menú que debemos programar para que el usuario pueda interactuar con la
aplicación.
Así que tenemos todo listo para comenzar a realizar la aplicación de Catálogo de Películas,
manos a la obra y te deseamos el mayor éxito en la realización de tu práctica final.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 8
CURSO DE PROGRAMACIÓN CON JAVA
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 9
Por el experto: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
Crear el proyecto Catálogo de Películas. Al finalizar deberemos
observar lo siguiente:
www.globalmentoring.com.mx
www.globalmentoring.com.mx
Vamos a crear el proyecto:
www.globalmentoring.com.mx
Vamos a crear la clase:
www.globalmentoring.com.mx
Vamos a crear la clase:
www.globalmentoring.com.mx
Vamos a crear la clase :
www.globalmentoring.com.mx
Vamos a crear la clase:
www.globalmentoring.com.mx
Vamos a crear la clase :
www.globalmentoring.com.mx
Vamos a crear la clase :
www.globalmentoring.com.mx
Vamos a crear la clase :
www.globalmentoring.com.mx
Vamos a crear la clase :
www.globalmentoring.com.mx
Archivo Pelicula.java:
package mx.com.gm.peliculas.domain;
String nombre;
@Override
public String toString() {
return this.nombre;
}
}
www.globalmentoring.com.mx
Archivo AccesoDatosEx.java:
package mx.com.gm.peliculas.excepciones;
/**
*
* @author gm
*/
public class AccesoDatosEx extends Exception{
String mensaje;
www.globalmentoring.com.mx
Archivo EscrituraDatosEx.java:
package mx.com.gm.peliculas.excepciones;
/**
*
* @author gm
*/
public class EscrituraDatosEx extends AccesoDatosEx{
www.globalmentoring.com.mx
Archivo LecturaDatosEx.java:
package mx.com.gm.peliculas.excepciones;
/**
*
* @author gm
*/
public class LecturaDatosEx extends AccesoDatosEx{
www.globalmentoring.com.mx
Archivo AccesoDatos.java:
package mx.com.gm.peliculas.datos;
import java.util.List;
import mx.com.gm.peliculas.domain.*;
import mx.com.gm.peliculas.excepciones.*;
/**
* @author Ing. Ubaldo Acosta
* Interface para manejar datos, desde la creacion, lectura y escritura
*/
public interface AccesoDatos {
boolean existe(String nombreArchivo) throws AccesoDatosEx;
@Override
public List<Pelicula> listar(String nombreArchivo) throws LecturaDatosEx {
File archivo = new File(nombreArchivo);
List<Pelicula> peliculas = new ArrayList();
try {
BufferedReader entrada = new BufferedReader(new FileReader(archivo));
String linea = null;
linea = entrada.readLine();
while (linea != null) {
Pelicula pelicula = new Pelicula(linea);
peliculas.add(pelicula);
linea = entrada.readLine();
}
entrada.close();
//El código completo se puede descargar dando click al nombre del archivo…
www.globalmentoring.com.mx
Archivo CatalogoPeliculas.java:
package mx.com.gm.peliculas.negocio;
/**
*
* Interface para administrar el catalogo de peliculas
*
* @author Ing. Ubaldo Acosta
*/
public interface CatalogoPeliculas {
} www.globalmentoring.com.mx
Archivo CatalogoPeliculasImpl.java:
package mx.com.gm.peliculas.negocio; Dar click para
import
import
java.util.List;
mx.com.gm.peliculas.datos.*;
descargar el
import mx.com.gm.peliculas.domain.*;
import mx.com.gm.peliculas.excepciones.*; código
public class CatalogoPeliculasImpl implements CatalogoPeliculas{ completo
private final AccesoDatos datos;
public CatalogoPeliculasImpl() {
this.datos = new AccesoDatosImpl();
}
@Override
public void agregarPelicula(String nombrePelicula, String nombreArchivo) {
Pelicula pelicula = new Pelicula(nombrePelicula);
boolean anexar = false;
try {
anexar = datos.existe(nombreArchivo);
datos.escribir(pelicula, nombreArchivo, anexar);
} catch (AccesoDatosEx ex) {
System.out.println("Error de acceso a datos");
ex.printStackTrace();
}
}
//El código completo se puede descargar dando click al nombre del archivo…
www.globalmentoring.com.mx
Archivo CPJLaboratorioFinal.java:
package cpjlaboratoriofinal; Dar click para
import java.util.Scanner;
import mx.com.gm.peliculas.negocio.*;
descargar el
public class CPJLaboratorioFinal { código
private static final Scanner scanner = new Scanner(System.in); completo
private static int opcion = -1;
private static final String nombreArchivo = "c:\\catalogoPeliculas\\peliculas.txt";
private static final CatalogoPeliculas catalogoPeli = new CatalogoPeliculasImpl();
opcion = Integer.parseInt(scanner.nextLine());
//El código completo se puede descargar dando click al nombre del archivo…
www.globalmentoring.com.mx
Ejecutamos el proyecto:
www.globalmentoring.com.mx
Con este ejercicio concluimos el curso de Programación con Java.
!Hasta pronto¡
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
CURSO DE JAVA CON JDBC
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2
CURSO DE JAVA CON JDBC
Una base de datos contiene tablas relacionadas entre sí y cada tabla contiene
renglones y columnas que guardan cierta información, estos son solo algunos
de los conceptos utilizados en las bases de datos, a continuación vamos a
revisar algunos ejemplos de sentencias SQL y así observaremos cómo vamos a
manipular la información almacenada en una base de datos.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 3
CURSO DE JAVA CON JDBC
En SQL existen varias clasificaciones para poder interactuar con una base de
datos desde administrarla, manipular sus datos, hasta poder corregir
información errónea e incongruente dentro de una base de datos.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 4
CURSO DE JAVA CON JDBC
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 6
CURSO DE JAVA CON JDBC
En Global Mentoring promovemos la Pasión por la Tecnología Java. Te invitamos a visitar nuestro
sitio Web donde encontrarás cursos Java Online desde Niveles Básicos, Intermedios y Avanzados,
y así te conviertas en un experto programador Java.
© Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 7
Por el experto: Ing. Ubaldo Acosta
www.globalmentoring.com.mx
Instalar el motor de base de datos de Mysql. Al finalizar
deberemos observar lo siguiente:
www.globalmentoring.com.mx
Vamos a descargar mysql del siguiente link:
Windows:
http://icursos.net/software/mysql/mysql-installer.msi
Mac OS:
http://icursos.net/software/mysql/mysql-macos.dmg
www.globalmentoring.com.mx
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
( )
www.globalmentoring.com.mx
www.globalmentoring.com.mx
www.globalmentoring.com.mx
www.globalmentoring.com.mx
www.globalmentoring.com.mx
Con este ejercicio hemos instalado MySql. Este es el manejador
de base de datos que vamos a estar utilizando en varias de las
prácticas de este curso.
www.globalmentoring.com.mx
Por: Ing. Ubaldo Acosta
www.globalmentoring.com.mx