You are on page 1of 19

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO:

: 301403 PROGRAMACION ORIENTADA A OBJETOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

GUA COMPONENTE PRCTICO

301403 PROGRAMACION ORIENTADA A OBJETOS CESAR ORLANDO JIMENEZ ANGARITA (Director Nacional)

Zona: Centro Bogot Cundinamarca, Cead: Jos Acevedo y Gmez Enero 2013

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO


Curso Acadmico Modulo Programacin Orientada a Objetos Libros de la Biblioteca Virtual de Unad en Programacin Orientada a Objetos Consulta de Internet Programacin Orientada a Objetos Autor: Deitel y Deitel Introduccin DOO con UML y los Patrones de Diseo JDBC tm, SERVLETS, JSP tm Editorial Pearson Prentice Hall Quinta Edicin. David Arnow Gerald Weiss Introduccin a la Programacin con Java tm Actualizacin a la Versin 2 de Java Editorial Addison Wesley. Fcd Javier Ceballos Java 2 Curso de Programacin 2 Edicin Editorial Alfaomega Ra-Ma. Agustin Froute Java 2 Manual Usuario tutorial 3 Edicin Editorial Alfaomega Ra-Ma 5. Herbert shildt Fundamentos de Programacin Java 2 Editorial Mc Graw Hill . para conocer el lenguaje de programacin JAVA. Arnow, D., Weiss, G., Introduccin a la programacin con JAVA, Addison wesley, 2000. Larman, C., UML y patrones, Prentice Hall, 1998. Meyer, B., Construccin de software orientado a objetos, Prentice Hall, segunda edicin, 1997. Wu, T., Introduccin a la programacin orientada a objetos con Java, Mc Graw Hill, 2000. Joyanes, L., Programacin orientada a objetos, Segunda edicin, Mc Graw Hill, 1998. Grez Voss, Introduccin Orientada a Objetos, Editorial Mc Graw Hill, 1994. Joyanes, L., C++ a su alcance un enfoque orientada a objetos, Editorial, Mc Graw Hill, 1994. Cesar Becerra Santamara, C++ Una Herramienta para la Programacin Orientada a Objetos, Editorial Mc Graw Hill, 1.993. Fco Javier Ceballos, Programacin Orientada a Objetos con C++,Editorial Alfaomega, 1.998. Nathan Meyers, Programacin JAVA en Linux, Editorial Prentice Hall, 2.000. www.lawebdelprogramador.com www.programacion.com http://www.cimat.mx/~jlabreu/CursoJava/ http://www.mindview.net/Books/TIJ http://java.sun.com/docs/books/tutorial/ http://programacion.com/java/tutoriales/

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

3. INDICE DE CONTENIDO

Pg.
1. PRESENTACION 2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO 3. INDICE DE CONTENIDO 4. LISTADO DE TABLAS 5. CARACTERSTICAS GENERALES 6. DESCRIPCIN DE PRCTICAS PRACTICA No. 01 Estructuras no dinmicas Utilizando Java Eclipse Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: PRACTICA No. 02 Estructuras dinmicas Utilizando Java Eclipse Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: PRACTICA No. 03 Base de Datos Modelo Relacional entidad Relacin Access Utilizando Java Eclipse. Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: PRACTICA No. 04 Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica Utilizando Java Eclipse Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: 7. Fuentes Documentales 1 2 3 4 5 8 8 11 36 37 40 73 74

76 106 109 111 119 120

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

5. CARACTERSTICAS GENERALES Introduccin


Actualmente una de las reas ms importantes en la industria y el mbito acadmico es la orientacin a objetos, el curso que a continuacin se relaciona tiene el nombre de Programacin Orientada a Objetos el cual es terico prctico, de 3 crditos y hace parte de la formacin profesional en el programa de Ingeniera de Sistemas. El curso est compuesto por tres unidades acadmicas didcticas: Unidad Uno comprende la introduccin y elementos bsicos de la programacin orientada a objetos (POO) y las propiedades bsicas de la POO aplicado con JAVA. Unidad Dos hace referencia al diseo de la estructura y comportamiento de un objeto y se inicia con los Fundamentos de la programacin en el lenguaje JAVA. Unidad tres se enfocan en el trabajo con las clases, el manejo de la herencia y la extensin de las clases aplicado con JAVA.

Justificacin

El uso de y aplicaciones de herramientas enfocadas a la POO, hacen que el profesional en Ingeniera sea capaz de disear y desarrollar aplicaciones que permitan dar soluciones integrales a las necesidades del medio que lo rodea utilizando un compilador de JAVA. El curso de POO le permite al estudiante desarrollar su creatividad con el animo de dar soluciones a problemas cotidianos de su trabajo, le da la capacitada de comparar la programacin estructurada con la programacin orientada a objetos y enfrentar los retos del cambio, le permite desarrollar su capacidad de comunicacin, y su espritu Investigativo y crtico con una lenguaje de programacin orientado a objetos. Para lograr la apropiacin de todo el contenido temtico el estudiante aplicara en todo momento su autoformacin y se apoyara en el tutor para la resolucin de dudas, tambin se tendrn uso de herramientas tecnolgicas para la interaccin con los tutores y alumnos dentro de los laboratorios.

Intencionalidades formativas

Propsitos:
Dar a conocer a los estudiantes de una forma clara los conceptos fundamentales de la Programacin Orientada a Objetos en JAVA. Dar a Conocer a los estudiantes las ventajas de aplicar la Programacin Orientada a Objetos ya que simplifica la construccin de programas y lo motiva para estudiar las caractersticas del lenguaje JAVA. Capacitar a los estudiantes a comprender y utilizar herramientas de Programacin Orientadas a Objetos como JAVA, para el diseo de aplicaciones.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Objetivos:
Que el estudiante Describa los conceptos que caracterizan al modelo Programacin Orientada a Objetos Utilizando JAVA. Que el estudiante Valore en que medida las tcnicas Programacin Orientada a Objetos favorecen la calidad del software, analizando sobre todo cmo facilitan la reutilizacin y extensibilidad en JAVA. Que el estudiante entienda la importancia de trabajar Herramientas Programacin Orientadas a Objetos, para el desarrollo de nuevas aplicaciones empresariales en JAVA. Que le estudiante Aprenda un lenguaje Programacin Orientada a Objetos, junto a su entorno de programacin. Que el estudiante aplique tcnicas de programacin Orientada a Objetos en JAVA. Que el estudiante identifique analice y disee ejemplos de aplicacin en JAVA

Metas:
Al terminar este curso de Programacin Orientada a Objetos el estudiante: Desarrollara aplicaciones teniendo en cuenta los fundamentos tericos, y el manejo de objetos como principal elemento de Construccin de soluciones en JAVA. Tendr la capacidad de analizar, disear y desarrollar software utilizando el entorno de Programacin Orientada a Objetos con JAVA. Adquiera destrezas en el uso de las herramientas como el JAVA para el desarrollo de aplicaciones que den soluciones confiables y permitan mejorar procesos.

Competencias:
El estudiante comprende e interpreta todos los conceptos fundamentales de la Programacin Orientada a Objetos, para poder analiza, disear, desarrollar e implantar aplicaciones ms robustas y con cdigo reutilizable con JAVA. El estudiante adquiere destrezas en el uso de procedimientos que le permitan analizar, disear y desarrollar aplicaciones haciendo uso de la programacin Orientada a Objetos con JAVA.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS El estudiante aprende un lenguaje Programacin Orientada a Objetos, junto a su entorno de programacin JAVA.

Denominacin de practicas

Prctica 01: Estructuras no dinmicas Utilizando Java Eclipse Practica 02: Estructuras dinmicas Utilizando Java Eclipse Practica 03: Base de Datos Modelo Relacional entidad Relacin Access Utilizando Java Eclipse Practica 04: Redes Encriptamiento y desincriptamiento de un dato, Chat cliente Servidor Utilizando Java Eclipse Practica 05: Computacin Grafica 2D y 3D Utilizando Jcreator Java Eclipse

Nmero de horas Porcentaje

4 Horas por laboratorio, 4 Cinco Laboratorios, un total 16 Horas 25 Puntos de la plataforma Campus Virtual NO_X_

Curso Evaluado por SI___ proyecto Seguridad industrial

No Ingresar Alimentos lquidos o slidos al Laboratorio. Para que se presente algn corto circuito. No ingresar fumando al Laboratorio. Para que moleste a los compaeros. No ingresar otros aparatos electrnicos como radios, Walkman, para que no interfieran en el desarrollo del laboratorio. No Cambiar los computadores de sitio sin autorizacin del monitor del laboratorio. No reconfigurar los equipos de computo ya que este presta servicio a toda la comunidad unadista.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

PRACTICA No. 04 Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica 2D con Java 2 Utilizando Jcreator LE Tipo de practica Presencial Autodirigida Remota X

Porcentaje de evaluacin Horas de la practica Temticas de la prctica Intencionalidades formativas

7.5 % del 60 % 3 Horas Laboratorio ST 12 Horas Independientes Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica 2D con Java 2 Utilizando Jcreator LE

Propsitos:
Aportar a la fundamentacin terica del estudiante, como base para la construccin de un discurso coherente y sustentado, a travs de la profundizacin en la terminologa a travs del lenguaje de programacin Java, Introducir al estudiante en el conocimiento de los principales algoritmos y estructuras de datos utilizados en Computacin Grfica, especialmente en la generacin degrficos en dos dimensiones con lenguaje de programacin Java. Proporcionar al estudiante los lineamientos tecnolgicos bsicos que le permitan utilizar API grficas en conjunto con lenguajes de programacin de alto nivel, para el proceso de modelamiento y construccin de escenarios grficos en 2D y 3D..

Objetivos:
Que el estudiante utilice y comprenda los diferentes conceptos relacionados con el la representacin de grficos en el computador y los componentes hardware software necesarios partiendo de los fundamentos tericos y tecnolgicos de esta disciplina con es el lenguaje de programacin Java. Que el estudiante explique los algoritmos necesarios para el trazado de curvas en dos dimensiones, a partir del estudio de su origen matemtico, geomtrico y construya aplicaciones bsicas que las implementen utilizando lenguajes de alto nivel o lenguaje de programacin Java

Metas:
Definir y comparar trminos relacionados comnmente con la computacin grfica y con el lenguaje de programacin Java. Relacionar los diferentes componentes que intervienen en la

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS apreciacin de la luz y el color en el computador y con el lenguaje de programacin Java. Usar API grficas para la construccin de grficos computacionales. Utilizar y construir algoritmos para dibujo de grficos en 2D y 3D. Describir el funcionamiento matemtico y geomtrico que permite el dibujo de grficos en el computador y con el lenguaje de programacin Java..

Competencias:
El estudiante programa y utiliza algoritmos que permiten dibujar las principales figuras geomtricas de dos dimensiones. El estudiante conoce los fundamentos matemticos de la representacin de grficos computacionales en dos dimensiones y utiliza algoritmos que las realizan. El estudiante utiliza las principales clases proporcionadas por el API 2D y 3D de Java, en la programacin de ejercicios que exigen la representacin de grficos en dos y 3 dimensiones.

Fundamentacin Terica Computacion Grafica Algoritmos bsicos de dibujo en dos Dimensiones Trabajar con API Grafica Introduccion a las redes de computador Redes de Datos Redes de Area local Descripcin de la practica
El estudiante debe instalar una maquina virtual y Jcretor JE en su casa, este software debe ser bajado a travs de internet de la pgina Sum Macrosystem El estudiante debe bajar la Gua de Laboratorio para la prctica de la Plataforma campus Virtual del curso Acadmico de Programacin Orientada a Objetos. El estudiante mediante la herramienta de copiar y pegar debe practicar los diferentes ejercicios propuestos en esta gua para que vaya adquiriendo destreza en el lenguaje de programacin Java. El estudiante debe de estar en capacidad de investigar los diferentes cdigos de java ya que todos los ejercicios que propone la gua de laboratorio estn propuestos java.swing.*, o ambiente grafico y el estudiante debe tener las condiciones de pasarlo en java.io.*, o ambiente en cdigo de lnea

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS todos los propuestos en estas.

Recursos a utilizar en la prctica (Equipos / instrumentos)


Computadores Modernos con buena Configuracin y con software licenciado

Software a utilizar en la practica


Instalacin de la maquina virtual e Instancian del Jcreator LE, de la casa Sum Macrosystem

Metodologa
Conocimiento previo para el desarrollo de la prctica. El estudiante de ver el Curso Acadmico de Programacin Orientada a Objetos tiene que tener buenas bases de Algoritmos, Introduccin a Programacin, Estructura de Datos, Bases de Datos, Redes de Comunicacin, Forma de trabajo: El estudiante analizara primero todo los programas propuestos por el tutor de laboratorio los cuales estn analizados, diseados y desarrollados completamente listos para que su cdigo sea copiado y pegado en JAVA y luego ser ejecutados, luego el estudiante de haber analizado el cdigo se enfrentara a la tarea de desarrollar una serie de programas por s solo. Procedimiento: El Estudiante debe investigar como puede hacer estos mismos programas utilizando las libreras import java.io.* y applet

Sistema de Evaluacin El sistema de evaluacin estar a cargo de los tutores de Laboratorio ya que ellos son autnomos de calificar bien sea en grupos o de forma individual el trabajo realizado en los laboratorios Informe o productos a entregar Los estudiantes debe entregar los ejercicios propuestos en la gua de laboratorio en java.io.*; y applet Rbrica de evaluacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA "UNAD"


ESCUELA CIENCIAS BASICAS TECNOLOGIA E INGENIERIA PROGRAMA INGENIERIA DE SISTEMAS

Practica 04 Redes de Comunicacin y Computacin Grafica con Java Utilizando Jcretor LE


Rbrica de Evaluacin:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

tem Evaluado

Valoracin Baja

Valoracin Media

Valoracin Alta

Mximo Puntaje

Estructura del Programa codificado en Jcreator LE

Programas sin formato (0)

Programas sin ejecutables (2)

Programas ejecutables (3)

Redaccin y Ortografa documentacin del programa

Programas No documentado (0)

Programas Medio documentado (2)

Programas Bien documentado (3)

Fines del programa

Programa no cumple con lo sugerido (0)

Programa regular con lo sugerido (7)

Programa Cumple con lo sugerido (15)

TOTAL DE PUNTOS POSIBLES

Nota: Estudiante que no se presente al componente practico en las fechas propuestas por los diferentes Cead o Ceres y que no desarrollen las guas propuestas para estos laboratorios, tendr una nota total de CERO: (0)

Retroalimentacin La retroalimentacin de los diferentes productos entregados en el laboratorio sern evaluados por el tutor de laboratorio directamente ya que el es el encargo de entregar la nota del 30 % con respecto al componente practico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ejercicios Propuestos por el tutor:


Gua de Laboratorio Comunicacion utilizando el lenguaje de programacin Java trabajos con java.swing.*; o ambiente grafico

Servidor
import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Servidor extends JFrame { private JTextField campoIntroducir; private JTextArea areaPantalla; private ObjectOutputStream salida; private ObjectInputStream entrada; private ServerSocket servidor; private Socket conexion; private int contador = 1; // configurar GUI public Servidor() { super( "Servidor" ); Container contenedor = getContentPane(); // crear campoIntroducir y registrar componente de escucha campoIntroducir = new JTextField(); campoIntroducir.setEditable( false ); campoIntroducir.addActionListener( new ActionListener() { // enviar mensaje al cliente public void actionPerformed( ActionEvent evento ) { enviarDatos( evento.getActionCommand() ); campoIntroducir.setText( "" ); } } ); contenedor.add( campoIntroducir, BorderLayout.NORTH ); // crear areaPantalla areaPantalla = new JTextArea(); contenedor.add( new JScrollPane( areaPantalla ), BorderLayout.CENTER ); setSize( 300, 150 ); setVisible( true ); } // fin del constructor de Servidor // configurar y ejecutar el servidor public void ejecutarServidor() { // configurar servidor para que reciba conexiones; procesar las conexiones try { // Paso 1: crear un objeto ServerSocket. servidor = new ServerSocket( 12345, 100 );

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
while ( true ) { try { esperarConexion(); // Paso 2: esperar una conexin. obtenerFlujos(); // Paso 3: obtener flujos de entrada y salida. procesarConexion(); // Paso 4: procesar la conexin. } // procesar excepcin EOFException cuando el cliente cierre la conexin catch ( EOFException excepcionEOF ) { System.err.println( "El servidor termin la conexin" ); } finally { cerrarConexion(); // Paso 5: cerrar la conexin. ++contador; } } // fin de instruccin while } // fin del bloque try // procesar problemas con E/S catch ( IOException excepcionES ) { excepcionES.printStackTrace(); } } // fin del mtodo ejecutarServidor // esperar que la conexin llegue, despus mostrar informacin de la conexin private void esperarConexion() throws IOException { mostrarMensaje( "Esperando una conexin\n" ); conexion = servidor.accept(); // permitir al servidor aceptar la conexin mostrarMensaje( "Conexin " + contador + " recibida de: " + conexion.getInetAddress().getHostName() ); } // obtener flujos para enviar y recibir datos private void obtenerFlujos() throws IOException { // establecer flujo de salida para los objetos salida = new ObjectOutputStream( conexion.getOutputStream() ); salida.flush(); // vaciar bfer de salida para enviar informacin de encabezado // establecer flujo de entrada para los objetos entrada = new ObjectInputStream( conexion.getInputStream() ); mostrarMensaje( "\nSe recibieron los flujos de E/S\n" ); } // procesar la conexin con el cliente private void procesarConexion() throws IOException { // enviar mensaje de conexin exitosa al cliente String mensaje = "Conexin exitosa"; enviarDatos( mensaje ); // habilitar campoIntroducir para que el usuario del servidor pueda enviar mensajes establecerCampoTextoEditable( true ); do { // procesar los mensajes enviados por el cliente // leer el mensaje y mostrarlo en pantalla try { mensaje = ( String ) entrada.readObject(); mostrarMensaje( "\n" + mensaje ); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
// atrapar problemas que pueden ocurrir al tratar de leer del cliente catch ( ClassNotFoundException excepcionClaseNoEncontrada ) { mostrarMensaje( "\nSe recibi un tipo de objeto desconocido" ); } } while ( !mensaje.equals( "CLIENTE>>> TERMINAR" ) ); } // fin del mtodo procesarConexion // cerrar flujos y socket private void cerrarConexion() { mostrarMensaje( "\nFinalizando la conexin\n" ); establecerCampoTextoEditable( false ); // deshabilitar campoIntroducir try { salida.close(); entrada.close(); conexion.close(); } catch( IOException excepcionES ) { excepcionES.printStackTrace(); } } // enviar mensaje al cliente private void enviarDatos( String mensaje ) { // enviar objeto al cliente try { salida.writeObject( "SERVIDOR>>> " + mensaje ); salida.flush(); mostrarMensaje( "\nSERVIDOR>>> " + mensaje ); } // procesar problemas que pueden ocurrir al enviar el objeto catch ( IOException excepcionES ) { areaPantalla.append( "\nError al escribir objeto" ); } } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // areaPantalla en el subproceso despachador de eventos private void mostrarMensaje( final String mensajeAMostrar ) { // mostrar mensaje del subproceso de ejecucin despachador de eventos SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente public void run() // actualiza areaPantalla { areaPantalla.append( mensajeAMostrar ); areaPantalla.setCaretPosition( areaPantalla.getText().length() ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // campoIntroducir en el subproceso despachador de eventos private void establecerCampoTextoEditable( final boolean editable ) { // mostrar mensaje del subproceso de ejecucin despachador de eventos SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
public void run() // establece la capacidad de modificar a campoIntroducir { campoIntroducir.setEditable( editable ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } public static void main( String args[] ) { Servidor aplicacion = new Servidor(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); aplicacion.ejecutarServidor(); } } // fin de la clase Servidor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Cliente
import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Cliente extends JFrame { private JTextField campoIntroducir; private JTextArea areaPantalla; private ObjectOutputStream salida; private ObjectInputStream entrada; private String mensaje = ""; private String servidorChat; private Socket cliente; // inicializar servidorChat y configurar GUI public Cliente( String host ) { super( "Cliente" ); servidorChat = host; // establecer el servidor al que se va a conectar este cliente Container contenedor = getContentPane(); // crear campoIntroducir y registrar componente de escucha campoIntroducir = new JTextField(); campoIntroducir.setEditable( false ); campoIntroducir.addActionListener( new ActionListener() { // enviar mensaje al servidor public void actionPerformed( ActionEvent evento ) { enviarDatos( evento.getActionCommand() ); campoIntroducir.setText( "" ); } } ); contenedor.add( campoIntroducir, BorderLayout.NORTH ); // crear areaPantalla areaPantalla = new JTextArea(); contenedor.add( new JScrollPane( areaPantalla ), BorderLayout.CENTER ); setSize( 300, 150 ); setVisible( true ); } // fin del constructor de Cliente // conectarse al servidor y procesar mensajes del servidor private void ejecutarCliente() { // conectarse al servidor, obtener flujos, procesar la conexin try { conectarAServidor(); // Paso 1: crear un socket para realizar la conexin obtenerFlujos(); // Paso 2: obtener los flujos de entrada y salida procesarConexion(); // Paso 3: procesar la conexin } // el servidor cerr la conexin catch ( EOFException excepcionEOF ) { System.err.println( "El cliente termino la conexin" ); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
// procesar los problemas que pueden ocurrir al comunicarse con el servidor catch ( IOException excepcionES ) { excepcionES.printStackTrace(); } finally { cerrarConexion(); // Paso 4: cerrar la conexin } } // fin del mtodo ejecutarCliente // conectarse al servidor private void conectarAServidor() throws IOException { mostrarMensaje( "Intentando realizar conexin\n" ); // crear Socket para realizar la conexin con el servidor cliente = new Socket( InetAddress.getByName( servidorChat ), 12345 ); // mostrar la informacin de la conexin mostrarMensaje( "Conectado a: " + cliente.getInetAddress().getHostName() ); } // obtener flujos para enviar y recibir datos private void obtenerFlujos() throws IOException { // establecer flujo de salida para los objetos salida = new ObjectOutputStream( cliente.getOutputStream() ); salida.flush(); // vacar bfer de salida para enviar informacin de encabezado // establecer flujo de entrada para los objetos entrada = new ObjectInputStream( cliente.getInputStream() ); mostrarMensaje( "\nSe recibieron los flujos de E/S\n" ); } // procesar la conexin con el servidor private void procesarConexion() throws IOException { // habilitar campoIntroducir para que el usuario del cliente pueda enviar mensajes establecerCampoTextoEditable( true ); do { // procesar mensajes enviados del servidor // leer mensaje y mostrarlo en pantalla try { mensaje = ( String ) entrada.readObject(); mostrarMensaje( "\n" + mensaje ); } // atrapar los problemas que pueden ocurrir al leer del servidor catch ( ClassNotFoundException excepcionClaseNoEncontrada ) { mostrarMensaje( "\nSe recibi un objeto de tipo desconocido" ); } } while ( !mensaje.equals( "SERVIDOR>>> TERMINAR" ) ); } // fin del mtodo procesarConexion // cerrar flujos y socket private void cerrarConexion() { mostrarMensaje( "\nCerrando conexin" ); establecerCampoTextoEditable( false ); // deshabilitar campoIntroducir try { salida.close(); entrada.close();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
cliente.close(); } catch( IOException excepcionES ) { excepcionES.printStackTrace(); } } // enviar mensaje al servidor private void enviarDatos( String mensaje ) { // enviar objeto al servidor try { salida.writeObject( "CLIENTE>>> " + mensaje ); salida.flush(); mostrarMensaje( "\nCLIENTE>>> " + mensaje ); } // procesar los problemas que pueden ocurrir al enviar el objeto catch ( IOException excepcionES ) { areaPantalla.append( "\nError al escribir el objeto" ); } } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // areaPantalla en el subproceso despachador de eventos private void mostrarMensaje( final String mensajeAMostrar ) { // mostrar mensaje del subproceso de ejecucin de la GUI SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente public void run() // actualiza areaPantalla { areaPantalla.append( mensajeAMostrar ); areaPantalla.setCaretPosition( areaPantalla.getText().length() ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // campoIntroducir en el subproceso despachador de eventos private void establecerCampoTextoEditable( final boolean editable ) { // mostrar mensaje del subproceso de ejecucin de la GUI SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente public void run() // establece la capacidad de modificar campoIntroducir { campoIntroducir.setEditable( editable ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } public static void main( String args[] ) { Cliente aplicacion; if ( args.length == 0 ) aplicacion = new Cliente( "127.0.0.1" ); else aplicacion = new Cliente( args[ 0 ] );

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); aplicacion.ejecutarCliente(); } } // fin de la clase Cliente

Ejercicios a Realizar por el Estudiante:


El estudiante despus de adquirir destreza y conocimiento acerca de lenguaje de programacin JAVA en comunicaciones el estudiante de elaborar un programa que no solo enva mensajes a travs del servidor y cliente sino que puedan enviar archivos acjuntos, crear un gragicador en 3d

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

7. FUENTES DOCUMENTALES
Curso Acadmico Modulo Programacin Orientada a Objetos Libros de la Biblioteca Virtual de Unad en Programacin Orientada a Objetos Consulta de Internet Programacin Orientada a Objetos Autor: Deitel y Deitel Introduccin DOO con UML y los Patrones de Diseo JDBC tm, SERVLETS, JSP tm Editorial Pearson Prentice Hall Quinta Edicin. David Arnow Gerald Weiss Introduccin a la Programacin con Java tm Actualizacin a la Versin 2 de Java Editorial Addison Wesley. Fcd Javier Ceballos Java 2 Curso de Programacin 2 Edicin Editorial Alfaomega Ra-Ma. Agustin Froute Java 2 Manual Usuario tutorial 3 Edicin Editorial Alfaomega Ra-Ma 5. Herbert shildt Fundamentos de Programacin Java 2 Editorial Mc Graw Hill . para conocer el lenguaje de programacin JAVA. Arnow, D., Weiss, G., Introduccin a la programacin con JAVA, Addison wesley, 2000. Larman, C., UML y patrones, Prentice Hall, 1998. Meyer, B., Construccin de software orientado a objetos, Prentice Hall, segunda edicin, 1997. Wu, T., Introduccin a la programacin orientada a objetos con Java, Mc Graw Hill, 2000. Joyanes, L., Programacin orientada a objetos, Segunda edicin, Mc Graw Hill, 1998. Grez Voss, Introduccin Orientada a Objetos, Editorial Mc Graw Hill, 1994. Joyanes, L., C++ a su alcance un enfoque orientada a objetos, Editorial, Mc Graw Hill, 1994. Cesar Becerra Santamara, C++ Una Herramienta para la Programacin Orientada a Objetos, Editorial Mc Graw Hill, 1.993. Fco Javier Ceballos, Programacin Orientada a Objetos con C++,Editorial Alfaomega, 1.998. Nathan Meyers, Programacin JAVA en Linux, Editorial Prentice Hall, 2.000. www.lawebdelprogramador.com www.programacion.com http://www.cimat.mx/~jlabreu/CursoJava/ http://www.mindview.net/Books/TIJ

http://java.sun.com/docs/books/tutorial/ http://programacion.com/java/tutoriales/

You might also like