practica 3 poo

Upload: jzapata92

Post on 15-Oct-2015

54 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 LABORATORIO PRCTICA 3

    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

    Practica 04: Redes Encriptamiento y desincriptamiento de un dato,

    Chat cliente Servidor, Computacin Grafica 2D y 3D Utilizando

    Jcreator Java Eclipse

    Nmero de horas 4 Horas por laboratorio, 4 Cinco Laboratorios, un total 16 Horas

    Porcentaje 35 Puntos de la plataforma Campus Virtual

    Curso Evaluado por

    proyecto

    SI___ NO_X_

    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 o Java Eclipse

    Tipo de practica

    Presencial Autodirigida Remota X

    Porcentaje de evaluacin 35 Puntos Plataforma Campus Virtual

    Horas de la practica 3 Horas Laboratorio ST 12 Horas Independientes

    Temticas de la prctica Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica 2D con Java 2 Utilizando

    Jcreator LE

    Intencionalidades formativas

    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 apreciacin de la luz y el color en el computador y con el lenguaje de programacin 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

    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

    todos los propuestos en estas.

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

    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 o Java Eclipse , 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 o Java Eclipse

    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

    Java Eclipse o

    Jcreator Le

    Programas sin

    formato (0)

    Programas

    Medianamente

    con formato

    (3)

    Programas con

    formato (7)

    7

    Redaccin y

    Ortografa

    documentacin

    del programa

    Programas No

    documentados

    (0)

    Programas

    Medianamente

    documentados

    (3)

    Programas Bien

    documentados

    (7)

    7

    Los Programas

    Compilan

    Correctamente

    Los Programas

    No Compilan

    Correctamente

    (0)

    Los Programas

    Compilan

    Medianamente

    (3)

    Los Programas

    Compilan

    Correctamente

    (7)

    7

    Los Programas

    Ejecutan

    Correctamente

    Los Programas

    No Ejecutan

    Correctamente

    (0)

    Los Programas

    Ejecutan

    Medianamnete

    (3)

    Los Programas

    Ejecutan

    Correctamente

    (7)

    7

    Fines del

    programa

    Programa no

    cumple con lo

    sugerido (0)

    Programa

    regular con lo

    sugerido (3)

    Programa

    Cumple con lo

    sugerido (7)

    7

    TOTAL DE

    PUNTOS

    POSIBLES

    35

    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 ); while ( true ) {

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

    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 ); } // atrapar problemas que pueden ocurrir al tratar de leer del cliente catch ( ClassNotFoundException excepcionClaseNoEncontrada ) {

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

    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 public void run() // establece la capacidad de modificar a campoIntroducir {

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

    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/