SUMARIO DE EJERCICIOS BÁSICOS Y COMPLEJOS DE JAVA
Hola a todos... en este hilo puedes encontran códigos fuente de diversos temas de Java. Está organizado de lo más básico a lo más complejo y para cada tema he puesto una pequeña introducción, que ilustra a grandes rasgos lo que abarcan los programas. La mayoría de los programas, incluyendo los del principio, utilizan el paquete Swing de Java para las interfaces gráficas de usuario, e incluso se utilizan clases internas anónimas para el manejo de eventos, en vez de los métodos convencionales. Se incluyen también programas que tienen errores a propósito, para explicar restricciones de Java; estos se encuentran
subrayados. Los programas están organizados y distribuidos en los siguientes temas:
Introducción a las aplicaciones en Java
Introducción a los Applets en Java
Instrucciones de control
Métodos (funciones)
Arreglos
Programación Basada en Objetos
Programación Orientada a Objetos (Herencia y Polimorfismo)
Cadenas y caracteres
Gráficos y Java2D
Componentes de la interfaz gráfica de usuario (GUI's)
Manejo de excepciones
Subprocesamiento múltiple (Hilos, Threads)Introducción a las Aplicaciones en JavaOfrece una ligera introducción a la programación de aplicaciones en el lenguaje de programación Java. En estos programas se concentran los conceptos y las construcciones básicas de programación, para los no programadores y newbies. También ilustran como mostrar datos en pantalla y como leer datos desde el teclado, así como el uso de operadores relacionales y de igualdad y operadores aritméticos.
Introducción a los subprogramas de Java (Applets)En esta sección se pueden bajar subprogramas básicos de Java, también llamados Applets, que son programas diseñados para transportarse a través de Internet y ejecutarse en navegadores Web (como el Internet Explorer, Opera, FireFox, etc.). Hay muchos otros applets en la sección de demos del J2DSK(j2sdk1.4.1/demo/applets), en los cuales te puedes basar.
Instrucciones de ControlEsta sección se enfoca en el proceso de desarrollo de programas. Se exponen los tipos primitivos de instrucciones de control para la tomas de decisiones (if, else, if... else, while, do...while, for, switch, etc.). Los ejemplos también muestran el manejo de la repetición controlada por contador y por centinela, y se introducen los operadores de incremento, decremento y asignación de Java y las instrucciones break y switch.
Métodos (funciones)En esta sección se ofrece un análisis más detallados de los objetos. Los objetos contienen datos llamados campos y unidades llamados métodos. En esta sección se encuentran ejemplos muy conocidos sobre recursividad. Las técnicas aquí expuestas son esenciales para producir programas correctamente estructurados, especialmente los más grandes que desarrollan los programadores de sistemas y aplicaciones. También se muestra el uso de la sobrecarga de métodos y se presentan el manejo de eventos.
Arreglos (arrays)Los arreglos en Java son objetos, demostrando el compromiso de Java con la orientación a objetos. En esta sección se encuentran diversos ejemplos de arreglos unidimensionales y multidimensionales, y se exponen las manipulaciones más comunes de estos. También el proceso de pasar arreglos a métodos y las técnicas elementales para ordenar y realizar búsquedas, junto con la presentación de la búsqueda binaria como una mejora sobre la búsqueda lineal.
Programación Basada en ObjetosEn esta sección se encuentran ejemplos más detallados de las clases. Muestra: la implementación de clases en Java, el acceso a los miembros de una clase, como implementar la ocultación de la información con modificadores de acceso, separar la interfaz de la implementación, usar métodos de acceso, separar la interfaz de la implementación, usar métodos de acceso y métodos utilitarios e inicializar objetos con constructores. También: el como declarar y utilizar constantes, la composición, la referencia con this, los miembros de la clase static y tipos de datos abstractos populares como pilas y colas. Al igual que se da un ejemplo introductorio al uso de paquetes (package) de Java.
Programación Orientada a Objetos (Herencia y Polimorfismo)En esta sección puedes descargar ejemplos de una de las herramientas fundamentales en la programación orientada a objetos, la herencia, la cual es una forma de reutilización de software en la que nuevas clases se desarrollan rápida y fácilmente al absorber las características de las clases existentes y agregar nuevas características que sean apropiadas. También se muestran ejemplos introductorios sobre superclases y subclases, el modificador de acceso protected, las superclases directas e indirectas, el uso de constructores en superclases y subclases, y la ingeniería de software con herencia. También hay ejemplos sobre polimorfismo, otra importante herramienta en la llamada Programación Orientada a Objetos. Se muestra la diferencia de clases abstractas (abstract) y clases concretas; además de presentar las interfaces, que es el reemplazo de la llamada "herencia múltiple" de C++. También presenta el concepto de las clases anidadas, las cuales utilizamos en este caso para el manejo de eventos de componentes de la GUI. Véase especialmente tres ejemplos prácticos de polimorfismo: un sistema de nóminas, una jerarquía de figuras encabezada por una clase abstract y una jerarquía de clases encabezada por una interfaz.
Cadenas y caracteresEsta sección trata el procesamiento de palabras, oraciones, caracteres y grupos de caracteres. Se presentan las clases String, StringBuffer, Character y StringTokeizer. También se presentan ejemplos de la API de Java para las expresiones regulares (nueva en la J2SE 1.4), la cual permite a los programas buscar en las cadenas secuencias de caracteres que concuerden con ciertos patrones especificados.
- Constructores de la clase String
- Métodos length, charAt y getChars de String
- Métodos equals, equalsIgnoreCase, compareTo y regionMatches de String
- Métodos startsWith y endsWith de String
- Métodos de búsqueda indexOf y lastIndexOf de String
- Método substring de la clase String
- Método concat de la clase String
- Métodos replace, toLowerCase, toUpperCase, trim y toCharArray de String
- Método valueOf de la clase String
- Constructores de la clase StringBuffer
- Métodos length, setLength, capacity y ensureCapacity de StringBuffer
- Métodos charAt, setCharAt, getChars, reverse de StringBuffer
- Método append de StringBuffer
- Métodos insert y delete de StringBuffer
- Métodos static de Character para probar caracteres y cambiar mayúsculas/minúsculas
- Métodos static de Character para la conversión de caracteres
- Métodos no static de Character
- La clase StringTokenizer
- Simulación para barajar y repartir cartas utilizando Strings
- Validación de la información del usuario mediante expresiones regulares
- Métodos replaceFirst, replaceAll y split
- Concordancias Expresiones Regulares, utilizando las clases Pattern y Matcher
Gráficos y Java2DEn esta sección de tratan los contextos y objetos gráficos; el dibujo de cadenas, caracteres y bytes; el control de color y tipo de letra; la manipulación de la pantallas, los modos de pantalla y el dibujo de líneas, rectángulos, rectángulos redondeados, rectángulos tridimensionales, óvalos, arcos y polígonos. Se presenta la API de Java2D, la cual ofrece poderosas herramientas para gráficos.
Componentes de la Interfaz Gráfica de Usuario GUIEn esta sección se presentan varios de los componentes de Java para la creación de interfaces gráficas de usuario. Los componentes de Swing pueden personalizarse para asemejarse a la apariencia de la plataforma computacional en la que se ejecute el programa, o pueden usar la apariencia visual de Java para brindar una interfaz idéntica en cualquier Sistema Operativo. Esta sección ilustra la jerarquía javax.swing, las labels, botones, listas, campos de texto, áreas de texto, cuadros combinados, casillas de verificación, los controles deslizables, las ventanas, los menús, menús contextuales, botones de opción paneles, como cambiar la apariencia visual, las interfaces con documentos múltiples, los paneles con fichas, el manejo de eventos de ratón y de teclado, y los administradores de esquemas, normales y avanzados, para posicionar componentes. También se muestra como extender los componentes de Swing.
Manejo de ExcepcionesEsta sección ejemplifica el tema de las excepciones, un tema importante en la construcción de aplicaciones de "misión crítica" o de "comercio crítico". para utilizar un componente de Java, es necesario saber no sólo la manera como se comporta ese componente cuando "las cosas salen bien", sino también cuando "las cosas salen mal". En esta sección se introducen instrucciones imprescindibles en el manejo de excepciones (try, catch, finally), además introduce la nueva capacidad de encadenamiento de excepciones en la J2SE 1.4.
Subprocesamiento múltiple (Hilos o Threads)Esta sección trata sobre cómo desarrollar programas en Java que puedan llevar a cabo varias actividades en forma concurrente. Aquí se presentan programas con subprocesamiento múltiple, los cuales muestran los problemas que pueden ocurrir en la programación concurrente. También se encuentra el típico ejercicio de la relación productor/consumidor sin sicronización (demostrando sus problemas) y despues con sincronización (para solucionar estos problemas). También se implementa una relación productor/consumidor con un búfer circular, y una sicronización adecuada con un monitor. Finalmente un ejercicio donde se trata la interfaz Runnable, que permite a los objetos ejecutarse como subprocesos sin tener que usar la clase Thread como subclase.