Ejercicios de clase (curso 60 horas)
- Feb 25
- Introducción a Java, Uso del Eclipse. Concepto de clase
- HolaMundo: Hola.java - Estructuras de control y métodos
- Clases: Cliente.java, Probar.java
- Introducción a Java, Uso del Eclipse. Concepto de clase
- Feb 27
- Declaración de una clase común
- Clases: Cliente.java, Probar.java - Referencias a objetos
- Constructores: Producto.java, ProbarProducto.java - uso de constructores, this, private & public, getters & setters
- Declaración de una clase común
- Feb 29 -
- Numeros: Numero.java, PruebaNumero.java - Métodos, static, final
- Arrays: Array.java
- Mar 3 -
- Arrays: Array.java
- Estructura de datos: Pila.java, ProbarPila.java - Implementación de una clase, this(), equals,
- Mar 5 -
- Herencia: Trabajador.java, Externo.java y Herencia.java - Mecanismo de herencia, extends, instanceof, casting
- Mar 7 - Herencia, interfaces
- Clases: Trabajador.java, Externo.java y Informatico.java
- Interfaces: Huelga.java y Vacaciones.java
- Prueba: Herencia.java
- Mar 10 -
- Ordenar:
- Clases: Cliente.java, Producto.java
- Implementación del interface Comparator: AntiguedadClienteComparator.java, DeudaClienteComparator.java, NombreProductoComparator.java y PrecioProductoComparator.java
- Pruebas: Ordenacion.java
- Paquetes:
- Biblioteca: com.foment.aula14.utilidades.Consola.java y com.foment.aula14.datos.Cliente.java
- Foment: com.foment.pruebas.Foment.java
- Ordenar:
- Mar 12 -
- Desarrollo de una clase, delegación de métodos, interfaz Iterable,
Collection.sort, Depuración
- com.foment.aula14.utilidades: Consola.java y Listas.java
- com.foment.aula14.datos: Cliente.java
- com.foment.aula14: Foment.java
- Desarrollo de una clase, delegación de métodos, interfaz Iterable,
Collection.sort, Depuración
- Mar 26
- Continuación
- com.foment.aula14.utilidades: Consola.java y Listas.java
- com.foment.aula14.datos: Cliente.java, Clientes.java
- com.foment.aula14: Foment.java
- Excepciones:
-
Mar 28
- Excepciones:
- Clase Exception y RuntimeException.
- Calcular el factorial usando excepciones: Factorial.java - throw, throws, try...catch
- Enumeraciones:
- Hebras:
- Ejemplo de uso de las hebras: Hebras.java
- Herencia de Thread: Hebra.java
- Implementación de Runnable: HebraRunnable.java
- Dormir una hebra: HebraSleep.java - Método sleep
- Ejecución atómica: Saldo.java y Cliente.java - syncronizable
- Applet:
- Inicio de un applet: MiApplet.java
- Excepciones:
- Mar 31
- Applet, AWT, Button, ActionListener
- Evento ActionPerformed: MiApplet.java y MiApplet.html
- Uso de ActionCommand: MiApplet2.java
- Un ActionListener para cada botón: MiApplet3.java
- Operaciones aritméticas: CalcularApplet.java y CalcularApplet.html
- Paso de parámetos desde el HTML al applet: ParametrosApplet.java y ParametrosApplet.html
- Applet, AWT, Button, ActionListener
- Abr 2 -
- EstadisticaApplet.java
es un código que se puede ejecutar como applet
o como aplicación.
- Disposición de los componentes: BorderLayout, GridLayout y Panel. Array de componentes.
- Creación de métodos breves y con nombres descriptivos para realizar la tarea.
- Propiedades de los componentes: Color y Font
- Ejecución en ventana: Frame. Cerrar una ventana: Uso de WindowListener, WindowAdapter y dispose
- Creación de una archivo jar para crear un programa independiente. Ejecución desde línea de comandos con java y javaw.
- EstadisticaApplet.java
es un código que se puede ejecutar como applet
o como aplicación.
- Abr 4 -
- Gráficos y animación en un applet: Grafico.java y GraficoApplet.java.
- Segunda versión de gráficos y animación en otro applet: Barra.java, GraficoBarras.java y GraficoBarrasApplet.java.
- Abr 7 -
- Programación visual con NetBeans y la biblioteca de clases
Swing: Main.java y Ventana.java
(Ventana.form)
- Clases: JFrame, JTabbedPane, JPanel, JButton, JLabel, JTextField, JTextArea, JOptionPane, JFileChooser
- Uso de ficheros mediante: Fichero.java
- Clases del paquete java.io: File, FileReader, BufferedReader, FilerWriter, BufferedWriter
- Excepciones: FileNotFoundException, IOException
- Programación visual con NetBeans y la biblioteca de clases
Swing: Main.java y Ventana.java
(Ventana.form)
- Abr 9 -
- Programación visual con Eclipse y el paquete Swing: Ventana.java,
JFichero.java y Fichero.java
- La programación visual de formularios con Eclipse aún no está madura, pero genera un código más elegante que con NetBeans. Además podemos modificar el código Java generado.
- La clase JFichero hereda de Fichero con el fin de crear una versión Swing de la clase. Con el uso de JOptionPane y JFileChooser se interactúa con el usuario.
- Utilización de LookAndFeel para cambiar el aspecto de las aplicaciones Swing de Java.
- Ejemplos de Layout: java2s.com -
- Programación visual con Eclipse y el paquete Swing: Ventana.java,
JFichero.java y Fichero.java
- Abr 11 -
- Conexión con base de datos mediante la biblioteca JDBC (paquete
java.sql)
- Creamos con MySQL Administrator una base de datos llamada bdfoment. dev.mysql.com
- Bajamos el controlador
JDBC para MySQL, y extraemos el archivo
mysql-connector-java-5.0.8-bin.jar
- En el proyecto de Eclipse añadimos la ruta del fichero JAR.
- Ejecutamos sentencias SQL mediante una aplicación Swing: Inicio.java y Conectar.java
- Las clases esenciales del paquete java.sql son: DriverManager, Connection, Statement y Resulset.
- Las excepciones son SQLException.
- Documentación de JDBC: Tutorial de Java de Agustín Froufe.
- Conexión con base de datos mediante la biblioteca JDBC (paquete
java.sql)
- Abr-14 -
- Clase para encapsular la conexión a la base de datos
- Migración de la base de datos
neptuno.mdb
de Access a MySQL con MySQL Migration Toolkit- Base de datos MySQL obtenida: neptuno.sql
- SQuirreL es un cliente SQL universal realizado en Java.
- Nueva versión del programa del día anterior, el nuevo proyecto
se llama bdneptuno:
- Clases: Basedatos.java, ConectarDialog.java y InicioFrame.java
- Migración de la base de datos
- Lista mejoras y fallos corregidos :
- Añadido
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
para que la ventana se destruya en vez de ocultarse. - Mover setLocation, setSize y setVisible al final del constructor del diálogo y de la ventana.
- Sobreescribir el método finalize para cerrar la conexión con la base de datos cuando se cierre la ventana.
- Añadido JScrollPane al texto del resultado para que aparezcan barras de desplazamiento.
- Se han especificado el tamaño de las cajas de texto del diálogo de conexión. Está como parámetro de JTextField.
- Añadido el método habilitarControles para activar o desactivar todos los componentes menos el botón de conectar.
- Extracción de la lógica de la base de datos en una clase llamada Basedatos. Se mueven los métodos conectar y consulta a la nueva clase.
- Añadido el método tablas para listar las tablas que hay en la base de datos. Se ha extraído el código en común con el método consulta en un nuevo método llamado resultsetToString.
- Añadido
- Clase para encapsular la conexión a la base de datos
- Abr 16 -
- Paquete com.foment.aula14: Basedatos.java, Inicio.java, Mensaje.java, JVentana.java, JRejilla.java, BasedatosException.java
- Paquete com.froses.tablemodels: ArrayListTableModel.java,
ScrollableTableModel.java,
ScrollabaleTableModelException.java
- Uso de parámetros en las consultas a la base de datos.
- Utilización de un JTable para mostrar los resultados.
- Utilización de un JTableModel para mostrar el ResultSet
- En la web de Frances Rosés Albiol encontramos un artículo muy interesante sobre JTable, TableModel y rendimiento
- Abr 18 -
- Uso del MVC (Modelo Vista Controlador) simplificado mediante las clases Observable y Observer
- PruebaModeloCalculadora.java, ModeloCalculadora.java, CalculadoraPanel.java
- Abr 21 -
- Libro recomendado "Essential skills for Agile Development" de Kent Tong Ka lok, AgileSkill.org.
En el libro se explican técnicas efectivas para la programación orientada a objetos con ejemplos de código en Java. - Utilización de un supuesto motor de compresor de ficheros que se pueda reutilizar en consola, ventana o applet.
- Motor de compresor: ZipEngine.java y MessageDisplay.java
- Panel y ventana: ZipPanel.java
- Applet: ZipApplet.java y ZipApplet.html
- Consola: ZipConsole.java y ZipMainConsole.java
- Una clase que comprime de verdad en Zip utilizando la biblioteca de clases de Java: ArchivoZipURL.java
- Libro recomendado "Essential skills for Agile Development" de Kent Tong Ka lok, AgileSkill.org.
Ejercicios de clase (curso 20 horas)
Relación y código de los proyectos creados con Eclipse:
- Hola Mundo
- HolaMundo.java - El programa básico y minimalista
- Referencias (o punteros de Java)
- Entorno de desarrollo EasyEclipse
- API de Java y paquetes.
- Clase Clientes
- Cliente.java - Una clase con sus propiedades, constructores, getters & setters para validar propiedades
- ProbarCliente.java - Pruebas de la clase Cliente
- Clase Marcadores
- Marcador.java - Clase para guardar marcadores a las páginas favoritas de Internet
- ProbarMarcadores.java - Pruebas de la clase Marcador
- Clase Productos
- Producto.java - Propiedades, constructores, validación de datos y toString sobreescrito de Object.
- ProbarProductos.java - Pruebas de la clase Producto
- Matrices
- Matrices.java - Matrices de 1 o 2 dimensiones sobre tipos básicos o clases. Bucles para recorrer matrices.
- Articulo.java - Clase mínima con constructor y toString
- Estático
- Consola.java - Clase con propiedades y métodos estáticos. Métodos del objeto vs. métodos de la clase.
- Pruebas.java - Prueba de la clase Consola
- Ventanas
- Main.java - Inicio de la aplicación de ventanas
- Ventana.java - Programa de ventana que suma, resta, multiplica y divide dos números introducidos por el usuario.
- Uso del interfaz ActionListener para el evento del ratón.
- Uso de FlowLayout para disponer los controles dentro del contenedor.
- Applet
- Principal.java - Inicio de la aplicación de ventanas
- PanelTexto.java - Panel que convierte a mayúsculas y calcula la longitud de un texto introducido por el usuario.
- TextoApplet.java - El applet para incrustar en una página web
- applet.html - Página web que contiene el applet (el código esta en el JAR)
- AppTexto.jar - Ejecutable de Java. Incluye las clases compiladas. Indica que clase tiene el método main.
- Excepciones
- MiExcepcion.java - Creación de un nuevo tipo de excepción.
- ProbarExcepciones.java - Excepciones más habituales. Tratamiento de excepciones. Excepciones personalizadas.
- EjercicioExcepciones.java - Ejercicio sobre excepciones.
- Herencia
- Persona.java - Una clase para una persona con NIF.
- Trabajador.java - Clase que hereda de persona. T
- ProbarHerencia.java - Pruebas de las clases
- Fecha.java - Encapsula el tratamiento de las fechas: Date y GregorianCalendar.
Ejercicios propuestos
- Realizar una clase para tratar con un número complejo: Complex.java
- Uso de los interfaces .odt - Comparator, Iterable, Iterator
Calendario
Febrero 2008 | ||||||
---|---|---|---|---|---|---|
L | M | X | J | V | S | D |
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 |
Marzo 2008 | ||||||
---|---|---|---|---|---|---|
L | M | X | J | V | S | D |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Abril 2008 | ||||||
---|---|---|---|---|---|---|
L | M | X | J | V | S | D |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Apuntes
- Apuntes de Java odt
- Programación en Java: Fundamentos de programación y principios de diseño. Fernando Berzal Galiano.
Notas aclaratorias
- La extensión .odt indica un fichero de texto en formato de OpenOffice.org (programario libre).
- La extensión .7z indica un fichero comprimido con 7-zip.org (programario libre).
Programas utilizados
- Descargar Java desde Sun
- JDK 6 - Java SE Development Kit incluye JRE
- Documentación de Java SE 6
- Java Documentations in
Windows Help format
- J2SE 6 documentation
- The Java Tutorial
- GUI (Interfaz gráfica de usuario)
- Base de datos MySQL Community
- MySQL Server 5
- MySQL GUI Tools 5
- Connector/J 5 - Controladores JDBC
Cadenas de conexión JDBC
Base de datos | Controlador (class) Cadena de conexión (URL) |
---|---|
JDBC ODBC bridge | sun.jdbc.odbc.JdbcOdbcDriver jdbc:odbc:<alias> |
MySQL |
com.mysql.jdbc.Driver jdbc:mysql://<host>:3306/<database> |
Microsoft SQL-Server Express | com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://<host>\SQLEXPRESS:1433 |
Oracle | oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@<server>:1521:<database> |