Está en la página 1de 6

SUMARIO DE EJERCICIOS BSICOS Y COMPLEJOS DE JAVA

Hola a todos... en este hilo puedes encontran cdigos fuente de diversos temas de Java. Est organizado de lo ms bsico a lo ms complejo y para cada tema he puesto una pequea introduccin, que ilustra a grandes rasgos lo que abarcan los programas. La mayora de los programas, incluyendo los del principio, utilizan el paquete Swing de Java para las interfaces grficas de usuario, e incluso se utilizan clases internas annimas para el manejo de eventos, en vez de los mtodos convencionales. Se incluyen tambin programas que tienen errores a propsito, para explicar restricciones de Java; estos se encuentran subrayados. Los programas estn organizados y distribuidos en los siguientes temas: Introduccin a las aplicaciones en Java Introduccin a los Applets en Java Instrucciones de control Mtodos (funciones) Arreglos Programacin Basada en Objetos Programacin Orientada a Objetos (Herencia y Polimorfismo) Cadenas y caracteres Grficos y Java2D Componentes de la interfaz grfica de usuario (GUI's) Manejo de excepciones Subprocesamiento mltiple (Hilos, Threads)

Introduccin a las Aplicaciones en Java


Ofrece una ligera introduccin a la programacin de aplicaciones en el lenguaje de programacin Java. En estos programas se concentran los conceptos y las construcciones bsicas de programacin, para los no programadores y newbies. Tambin 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 aritmticos.

o o o o o o

Programa para imprimir texto Imprimir una lnea de texto con varias instrucciones Imprimir varias lneas de texto con una sola instruccin Imprimir varias lneas de texto en un cuadro de dilogo Programa que muestra la suma de dos nmeros Compara enteros utilizando instrucciones if, operadores relacionales y de igualdad

Introduccin a los subprogramas de Java (Applets)


En esta seccin se pueden bajar subprogramas bsicos de Java, tambin llamados Applets, que son programas diseados para transportarse a travs de Internet y ejecutarse en navegadores Web (como el Internet Explorer, Opera, FireFox, etc.). Hay muchos otros applets en la seccin de demos del J2DSK(j2sdk1.4.1/demo/applets), en los cuales te puedes basar.

o o o o o

Nuestro primer subprograma en Java Mostrar varias cadenas en un subprograma Mostrar texto y dibujar lneas Suma dos nmeros de punto flotante El famoso juego Gato o Triqui

Instrucciones de Control
Esta seccin 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 tambin muestran el manejo de la repeticin controlada por contador y por centinela, y se introducen los operadores de incremento, decremento y asignacin de Java y las instrucciones break y switch.

o o o o o o o o o o o o o o

Promedio de una clase mediante la repeticin controlada por contador Promedio de una clase mediante la repeticin controlada por centinela Anlisis de los resultados de un examen utilizando while, if y else Los operadores preincremento y postdecremento Repeticin controlada por contador con la instruccin while Repeticin controlada por contador con la instruccin for Suma de enteros con la instruccin for Clculo del inters compuesto con la instruccin for Uso de la instruccin do...while Dibujar lneas, rectngulos u valos con base en la entrada del usuario (switch) Terminacin de un ciclo con break Continuar con la siguiente iteracin de un ciclo (continue) Instruccin break etiquetada Instruccin continue etiquetada

Operadores lgicos (&&, ||, &, |, ^, !)

Mtodos (funciones)
En esta seccin se ofrece un anlisis ms detallados de los objetos. Los objetos contienen datos llamados campos y unidades llamados mtodos. En esta seccin se encuentran ejemplos muy conocidos sobre recursividad. Las tcnicas aqu expuestas son esenciales para producir programas correctamente estructurados, especialmente los ms grandes que desarrollan los programadores de sistemas y aplicaciones. Tambin se muestra el uso de la sobrecarga de mtodos y se presentan el manejo de eventos.

o o o o o o o o o

Crear y utilizar un mtodo definido por el programador Encontrar el mximo de tres nmeros de punto flotante Enteros aleatorios con desplazamiento y escala Simulacin del lanzamiento de un dado Juego de dados Un ejemplo del alcance de las variables en mtodos Uso de mtodos sobrecargados Mtodo recursivo para el factorial Mtodo recursivo fibonacci

Arreglos (arrays)
Los arreglos en Java son objetos, demostrando el compromiso de Java con la orientacin a objetos. En esta seccin se encuentran diversos ejemplos de arreglos unidimensionales y multidimensionales, y se exponen las manipulaciones ms comunes de estos. Tambin el proceso de pasar arreglos a mtodos y las tcnicas elementales para ordenar y realizar bsquedas, junto con la presentacin de la bsqueda binaria como una mejora sobre la bsqueda lineal.

o o o o o o o o o o o o

Creacin de un arreglo Inicializacin de un arreglo con los enteros pares del 2 al 20 Sumar el total de los valores de los elementos de un arreglo Programa para imprimir histogramas Simulacin del lanzamiento de una dado utilizando arreglos Simulacin de votacin de estudiantes utilizando arreglos Paso de arreglos y elementos individuales de un arreglo a mtodos Ordenamiento de un arreglo utilizando el mtodo de Burbuja Bsqueda lineal en un arreglo Bsqueda binaria en un arreglo Inicializacin de arreglos bidimensionales Ejemplo de arreglo bidimensional

Programacin Basada en Objetos


En esta seccin se encuentran ejemplos ms detallados de las clases. Muestra: la implementacin de clases en Java, el acceso a los miembros de una clase, como implementar la ocultacin de la informacin con modificadores de acceso, separar la interfaz de la implementacin, usar mtodos de acceso, separar la interfaz de la implementacin, usar mtodos de acceso y mtodos utilitarios e inicializar objetos con constructores. Tambin: el como declarar y utilizar constantes, la composicin, 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.

o o o o o o o o

Ejemplo 1: impresin de Tiempo en horas utilizando Objetos Uso de la referencia this para hacer referencia a los campos y mtodos Ejemplo 2: impresin de Tiempo en horas utilizando Objetos con sobrecarga de Constructores Ejemplo 3: impresin de Tiempo en horas utilizando Objetos y los mtodos establecer y obtener Demostracin de un objeto que tiene como miembro a otro objeto Ejemplos con variables de clase esttica, el mtodo de clase esttico y memoria dinmica Inicializacin de una variable final Acceso de paquete de otras clases en el mismo paquete

Programacin Orientada a Objetos (Herencia y Polimorfismo)


En esta seccin puedes descargar ejemplos de una de las herramientas fundamentales en la programacin orientada a objetos, la herencia, la cual es una forma de reutilizacin de software en la que nuevas clases se desarrollan rpida y fcilmente al absorber las caractersticas de las clases existentes y agregar nuevas caractersticas que sean apropiadas. Tambin 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 ingeniera de software con herencia. Tambin hay ejemplos sobre polimorfismo, otra importante herramienta en la llamada Programacin Orientada a Objetos. Se muestra la diferencia de clases abstractas (abstract) y clases concretas; adems de presentar las interfaces, que es el reemplazo de la llamada "herencia mltiple" de C++. Tambin presenta el concepto de las clases anidadas, las cuales utilizamos en este caso para el manejo de eventos de componentes de la GUI. Vase especialmente tres ejemplos prcticos de polimorfismo: un sistema de

nminas, una jerarqua de figuras encabezada por una clase abstract y una jerarqua de clases encabezada por una interfaz.

o o o o o o o o o o o o o o o o

Ejemplos simples de Herencia: Un objeto Punto Un objeto Circulo Jerarqua Punto -> Circulo Jerarqua Punto -> Circulo utilizando datos private Jerarqua de herencia de tres niveles Constructores y finalizadores en las subclases Ejemplos simples Polimorfismo Asignacin de referencias de superclase y subclase a la variable de tipo superclase y subclase Intento de asignar la referencia de una superclase a una variable de tipo subclase Invocar a los mtodos miembros de la subclase a travs de una referencia a la subclase Herencia de Interfaz y de implementacin. Jerarqua Figura->Punto->Criculo->Cilindro Ejemplo prctico: Sistema de nmina utilizando polimorfismo Ejemplo prctico: Creacin y uso interfaces Utilizacin de clases internas para el manejo de eventos Utilizacin de clases internas annimas para el manejo de eventos

Cadenas y caracteres
Esta seccin trata el procesamiento de palabras, oraciones, caracteres y grupos de caracteres. Se presentan las clases String, StringBuffer, Character y StringTokeizer. Tambin 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.

o o o o o o o o o o o o o o o o o o o o o o

Constructores de la clase String Mtodos length, charAt y getChars de String Mtodos equals, equalsIgnoreCase, compareTo y regionMatches de String Mtodos startsWith y endsWith de String Mtodos de bsqueda indexOf y lastIndexOf de String Mtodo substring de la clase String Mtodo concat de la clase String Mtodos replace, toLowerCase, toUpperCase, trim y toCharArray de String Mtodo valueOf de la clase String Constructores de la clase StringBuffer Mtodos length, setLength, capacity y ensureCapacity de StringBuffer Mtodos charAt, setCharAt, getChars, reverse de StringBuffer Mtodo append de StringBuffer Mtodos insert y delete de StringBuffer Mtodos static de Character para probar caracteres y cambiar maysculas/minsculas Mtodos static de Character para la conversin de caracteres Mtodos no static de Character La clase StringTokenizer Simulacin para barajar y repartir cartas utilizando Strings Validacin de la informacin del usuario mediante expresiones regulares Mtodos replaceFirst, replaceAll y split Concordancias Expresiones Regulares, utilizando las clases Pattern y Matcher

Grficos y Java2D
En esta seccin de tratan los contextos y objetos grficos; el dibujo de cadenas, caracteres y bytes; el control de color y tipo de letra; la manipulacin de la pantallas, los modos de pantalla y el dibujo de lneas, rectngulos, rectngulos redondeados, rectngulos tridimensionales, valos, arcos y polgonos. Se presenta la API de Java2D, la cual ofrece poderosas herramientas para grficos.

o o o o o o o o o

Demostracin de los colores en Java Seleccionar colores con JColorChooser Uso de los tipos de letra (Font) Mtodos de FontMetrics y Graphics tiles para obtener mtrica de un tipo de letra Dibujo de Lneas, rectngulos y valos (drawLine, drawRect, drawRoundRect, drawOval) Dibujo de arcos (drawArc) Dibujo de Polgonos (Polygon, drawPolygon, drawPolyLine) Demostracin de algunas figuras de Java2D Demostracin de una ruta general (GeneralPath)

Componentes de la Interfaz Grfica de Usuario GUI


En esta seccin se presentan varios de los componentes de Java para la creacin de interfaces grficas 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 idntica en cualquier Sistema Operativo. Esta seccin ilustra la jerarqua javax.swing, las labels, botones, listas, campos de texto, reas de texto, cuadros combinados, casillas de verificacin, los controles deslizables, las ventanas, los mens, mens contextuales, botones de opcin paneles, como cambiar la apariencia visual, las interfaces con documentos mltiples, los paneles con fichas, el manejo de eventos de ratn y de teclado, y los administradores de esquemas, normales y avanzados, para posicionar componentes. Tambin se muestra como extender los componentes de Swing.

o o o o o o o o o o o o o o o o o o o o o o o o o o o o

La clase JLabel La clase JTextField La clase JButton La clase JCheckBox Las clases ButtonGroup y JRadioButton Uso de un objeto JComboBox para seleccionar una imagen a mostrar Seleccin de colores con un objeto JList Como copiar elementos de una lista (JList) a otra Demostracin de los eventos de Ratn (MouseListener) Uso de la clase MouseMotionAdapter Demostracin de los clics de ratn y cmo diferenciar entre los botones del ratn (MouseAdapter) Demostracin de los eventos de teclado (KeyListener) Demostracin de las alineaciones de FlowLayout Demostracin de BorderLayout Demostracin de GridLayout Uso de un objeto JPanel Como copiar texto seleccionado de un rea de texto (JTextArea) a otra Una clase JPanel personalizada Una clase JPanel auto contenida que maneja sus propios eventos de ratn Uso de un objeto JSlider Demostracin de los mens (JMenu, JMenuBar, JMenuItem) Demostracin de los objetos JPopupMenu Cambio de la apariencia visual (UIManager) Demostracin de JDesktopPane Demostracin de JTabbedPane Demostracin de BoxLayout Demostracin de GridBagLayout Demostracin de las constantes de GridBagLayout

Manejo de Excepciones
Esta seccin ejemplifica el tema de las excepciones, un tema importante en la construccin de aplicaciones de "misin crtica" o de "comercio crtico". para utilizar un componente de Java, es necesario saber no slo la manera como se comporta ese componente cuando "las cosas salen bien", sino tambin cuando "las cosas salen mal". En esta seccin se introducen instrucciones imprescindibles en el manejo de excepciones (try, catch, finally), adems introduce la nueva capacidad de encadenamiento de excepciones en la J2SE 1.4.

o o o o o

Manejo de excepciones que comprueba la divisin entre cero Manejo de try-catch-finally para manejar excepciones Demostracin de la limpieza de la pila Demostracin de getMessage y printStackTrace de la clase Exception Demostracin de las excepciones encadenadas

Subprocesamiento mltiple (Hilos o Threads)


Esta seccin trata sobre cmo desarrollar programas en Java que puedan llevar a cabo varias actividades en forma concurrente. Aqu se presentan programas con subprocesamiento mltiple, los cuales muestran los problemas que pueden ocurrir en la programacin concurrente. Tambin se encuentra el tpico ejercicio de la relacin productor/consumidor sin sicronizacin (demostrando sus problemas) y despues con sincronizacin (para solucionar estos problemas). Tambin se implementa una relacin productor/consumidor con un bfer circular, y una sicronizacin 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.

o o o o

Varios Subprocesos imprimiendo en distintos intervalos Ejemplo de productor/consumidor sin sicronizacin Ejemplo de productor/consumidor con sicronizacin Ejemplo de productor/consumidor: Bfer Circular

Demostracin de la clase Runnable

ltima modificacin: 15 Agosto 2008, 20:41 por Casidiablo http://casidiablo.net Casidiablo Desarrollador Colaborador Desconectado Mensajes: 2.915

En lnea

Ejercicios Java Bsico [ejemplos prcticos] Respuesta #5 en: 11 Enero 2006, 19:37

Archivos y Flujos
Esta seccin habla sobre la entrada/salida que se logra a travs de flujos de datos dirigidos hacia, y desde, los archivos. En los siguientes ejemplos se traducen los objetos a un formato persistente. El proceso de poder almacenar datos en archivos o desplazarlos a travs de redes (siguiente captulo) hace que los programas puedan guardar datos y comunicarse entre s. Se presenta un ejemplo de la clase File, que sirve para obtener informacin acerca de los archivos y directorios; tambin ejemplos sobre las clases ObjectInputStream, ObjectOutputStream, RandomAccessFile, etc. Nota: Muchos de los ejercicios de esta seccin, necesitan de las clases de otros ejercicios de aqu mismo, para su correcto funcionamiento.

o o o o o o o o

Demostracin de la clase File Creacin de un archivo secuencial (ObjectOutputStream) Leer datos de un archivo secuencial (ObjectInputStream) Creacin de un archivo de acceso aleatorio (RandomAccessFile) Escribir datos en un archivo de acceso aleatorio Leer datos en forma secuencial, de un archivo de acceso aleatorio Leer datos en forma aleatoria, de un archivo de acceso aleatorio Demostracin de las clases FileChannel y ByteBuffer

Redes
En esta seccin se presentan programas que se comunican a travs de redes de computadores, exponiendo las mejores herramientas de red para Java. Es casi necesario manejar el tema de Archivos y Flujos ya que Java maneja las redes como si fueran flujos de datos. Se manejan objetos de las clases URL, Socket, ServerSocket, DatagramSocket, DatagramPacket, SocketException, HiperLinkEvent, Serializable, InetAdress, entre otras. El ejemplo cuilminante para esta seccin es la creacin de un Chat, que utiliza las caractersticas ms importantes a la hora de implementar programas de redes en Java.

o o o o o o o o o

Este programa carga un documento a partir de un URL. Manipulacin de URL's Uso de un objeto JEditorPane para mostrar el contenido de un archivo en un servidor Interaccin entre cliente/servidor mediante conexiones de socket de flujo Interaccin entre cliente/servidor sin conexin mediante datagramas Juego de tres en raya (gato) tipo cliente/servidor (servidor con subprocesamiento mltiple) Ejemplos sacados del libro: "Cmo programar en Java" de Deitel: Programa de conversacin simple DeitelMessenger (java.net) Programa de conversacin simple DeitelMessenger con E/S sin bloqueo (java.nio) <<Programa de conversacin, Casidiablo Chat (java.net)>>

Multimedia: imagenes, animacin y audio


En esta seccin se presentan caractersticas de Java que permiten que los programas cobren vida a travs de la multimedia. Hay ejemplos sobre la manipulacin de Imagenes, Audio y Animacin.

o o o o

Cargar una imagen y mostrarla en su tamao original y al doble de su tamao original (Image e ImageIcon) Animacin de una serie de imagenes (Timmer) Demostracin de un mapa de imgenes Cargar un clip de audio y reproducirlo

Nota: Las herramientas de multimedia de Java van ms all de las que se presentan en esta seccin. Entre estas herramientas se incluyen la API del marco de trabajos de medios de Java (Java Media Framework API), la API de sonido de Java (Java Sound API), la API de 3D de Java (Java 3D API), la API de procesamiento avanzado de imgenes de Java (Java Avanced Imaging API), la API de

sntesis de voz de Java (Java Speech API), la API 2D de Java (Java 2D API) y la API de E/S de imgenes de Java (Java Image I/O API). Por esto os dejo una pequea fuente de informacin, para las API's anteriormente mencionadas, y algunas que se me escapan en el momento:

Esta es la pgina principal de la API JMF (Java Media Framework). Aqu puedes descargar la implementacin de Sun ms reciente de JMF. Este sitio tambin incluye la documentacin para la API de JMF. La pgina principal de la API de sonido de Java. Esta API proporciona herramientas para reproducir y grabar audio. La pgina principal de la API 3D de Java. Esta API proporciona herramientas producir imagenes tridimensionales, tpicas de los videojuegos de la actualidad. Este sitio proporciona un tutorial acerca de la API Java 3D. La pgina principal de la API para el manejo avanzado de imgenes en Java (Java Avanced Imaging). Esta API proporciona herramientas para procesar imgenes, como mejorar el contraste, recortar, escalar y la deformacin geomtrica. La pgina principal de la API de voz de Java (Java Speech). Esta API permite a los programas realizar la sntesis y el reconocimiento de voz. FreeTTS es una implementacin de la API de voz de Java. Esta es la pgina principal de la API de Java 2D. Esta API (presentada -aqu-) proporciona herramientas para grficos bidimensionales complejos. Este sitio contiene una descripcin general de la API de E/S de imgenes de Java (Java Imagen I/O API), la cual permite a los programas definir procesos personalizados para cargar y guardar imgenes en formatos que no sean soportados todava por las APIs de Java.

También podría gustarte