75-62 Técnicas de Programación Concurrente II 2004 java Threads

Tamaño: px
Comenzar la demostración a partir de la página:

Download "75-62 Técnicas de Programación Concurrente II 2004 java Threads"

Transcripción

1 75-62 Técnicas de Programación Concurrente II 2004 java Threads FIUBA Ing. Osvaldo Clúa Bibliografía: tutorial de Java en Un buen libro (algo teórico) es Garg: Concurrent and Distributed Computing in Java Puede haber material que ayude en las páginas de sus clases en http: Se presupone un conocimiento general de Java. En Internet hay bastantes cursos para poder seguir. En la página Web de la materia se dejó una colección de guías de estudio que se usó en años anteriores. Threads Para crear un thread en Java existen dos opciones: Extender la clase Thread. Implementar la interface Runnable. La elección de alguna de estas opciones depende del diseño general. Al no admitir Java herencia múltiple, la implementación de interfaces sirve para denotar propiedades secundarias al eje de herencia. El siguiente es un ejemplo de estas dos formas de hacerlo: 1. /** 2. * Primero.java 3. * 4. * El HolaMundo de las threads 5. */ class T1 extends Thread 8. { 9. public void run() { 10. System.out.println 11. ("Hola, soy tu primer Thread, extendi la clase Thread "+ 12. Thread.currentThread()); 13. } 14. } 15. class T2 implements Runnable 16. { 17. public void run() { 18. System.out.println 19. ("Hola, soy tu primer Thread, implemente Runnable " Thread.currentThread());

2 21. } 22. } public class Primero 25. { 26. public static void main(string args[]) { 27. T1 t1 = new T1(); 28. T2 ru = new T2(); 29. t1.start(); 30. Thread t2 = new Thread (ru); 31. t2.start(); 32. System.out.println("Hola, soy el Thread principal"+ 33. Thread.currentThread()); 34. try{ 35. t1.join(); 36. t2.join(); 37. } 38. catch(interruptedexception e){ 39. e.printstacktrace(); 40. System.exit(0); 41. } 42. System.out.println("Chau, solo queda el Thread principal"+ 43. Thread.currentThread()); 44. } 45. } En el código anterior se ven las dos formas de crear un thread. Al llamar al método start() de Thread se crea efectivamente el Thread y se le da control al método run() que es el que hay que programar. En el caso de implementar runnable se debe crear el thread para que haya acceso a este método. En la clase Thread están definios los métodos start() y join() con el significado habitual. La salida de este programa se ve así: 1.Hola, soy tu primer Thread, extendi la clase Thread Thread[Thread-0,5,main] 2.Hola, soy el Thread principalthread[main,5,main] 3.Hola, soy tu primer Thread, implemente Runnable Thread[Thread-1,5,main] 4.Chau, solo queda el Thread principalthread [main,5,main] -2-

3 Donde: Thread-0, Thread-1 y principalthread son los nombres de los threads. 5 es la prioridad y main es el grupo al que pertenecen. Estados de un thread: Un thread Java puede estar en uno de cuatro estados posibles: New. Cuando el objeto se crea (usando la isntrucción new()). Runnable. Una vez llamado el método start(). Blocked. Cuando se está a la espera de una operación de I/O o se llamó a los métodos sleep(), suspend() (este último está desaprobado y se quitará de alguna versión posterior de Java) Dead.. Cuando se terminó el run(...) o se llamó a stop() (también desaprobado). Como ejemplo mas completo se propone un conjunto de dos contadores sobre un mismo canvas: 1. /* El contador */ 2. import java.awt.*; public class Cont implements Runnable 5. { 6. long cont=0;int adormir; 7. Color color; Cont(int tiempo, Color c){ 10. color=c; adormir=tiempo; 11. } 12.public void run() { 13. while (true){ 14. try {Thread.sleep(aDormir);} 15. catch (InterruptedException e) {} 16. cont++; 17. } -3-

4 18. } 19.public void paint(graphics g) { 20. g.setcolor(color); 21. g.setfont(new Font (null,font.plain,24)); 22. g.drawstring( String.valueOf(cont), 10, 30); 23. } 24.} Este contador duerme según un parámetro de construcción (tiempo) y se incrementa en uno. Además tiene la responsabilidad de dibujarse en paint. Una aplicación usa de este contador, creando uno distinto en un canvas que divide en dos graphics: 1. /* La aplicacion del contador */ 2. import java.awt.*; 3. import java.awt.event.*; class ContAp extends Frame implements Runnable{ 6. Thread tic,tac,anima; 7. Cont c1,c2; 8. Canvas c; 9. int ancho=200,alto=300; 10.ContAp(String s){ 11. super(s); 12. c1=new Cont(500,Color.black); 13. c2=new Cont(1000,Color.blue); 14. tic=new Thread(c1);tac=new Thread(c2); 15. c=new Canvas (); 16. c.setsize(ancho,alto); 17. add(c); pack(); setvisible(true); 18. tic.start();tac.start(); 19. addwindowlistener(new WindowAdapter() 20. {public void windowclosing(windowevent e) {System.exit(0);}}); 21. anima=new Thread(this);anima.start(); 22. repaint(); 23. } 24.public void paint (Graphics g){ 25. Graphics cg=c.getgraphics(); 26. cg.setcolor(color.light_gray); 27. cg.fillrect(0,0,ancho,alto); 28. Graphics g1=cg.create(0,0,ancho,alto/2);c1.paint (g1); -4-

5 29. Graphics g2=cg.create(0,alto/2,ancho,alto/2); c2.paint(g2); 30. } 31.public void run() { 32. while (true) { 33. try {Thread.sleep(250);} 34. catch (InterruptedException e) {} 35. repaint(); 36. } 37. } } En el método paint se ve como divide el graphic en dos y le pide a cada contador que lo dibuje. Falta una clase principal que tenga el método public static void main(string s[]) para completar el ejemplo. Se usaron 3 threads: tick, tack y anima. Las dos primeras son de cada contador en tanto que la última es el thread necesario para la animación. Pruebe sin ella a ver que pasa. En el caso anterior cada elemento tiene su contexto gráfico propio. El ejemplo de los puntos adjunto a esta práctica muestra una variación compartiendo un único canvas. Como último ejemplo simple, se analizará la aplicación de puntos que rebotan en un canvas. Acá los puntos son una clase cuya responsabilidad es dibujarse, mantener su posición y velocidad. La clase PunCan contiene al canvas, la inicialización y el método paint() para dibujarse. En este caso se usó una técnica de animación conocida como Double Buffer. en la clase PunCan se hizo override de update: public void update(graphics g){paint(g);} Evitando que se borre la ventana con cada llamado. Se definió: Graphics migr; Image miim; -5-

6 Para tener donde trabajar offscreen. La image se crea del mismo tamaño que el canvas: miim=createimage((new Double(ca.getBounds().getWidth ())).intvalue(),(new Double(ca.getBounds().getHeight ())).intvalue()); migr=miim.getgraphics(); Y de esta imagen se crea un nuevo contexto gráfico. Se dibuja sobre este contexto gráfico y se envía toda la imagen al canvas de la pantalla en un solo paso: for(int i=0;i<cant;i++) {p[i].paint(migr);} Graphics g1=ca.getgraphics(); g1.drawimage(miim,0,0,this); } Esto anula el flicker. Es importante que entienda como cambiar la velocidad de animación. Sincronización El siguiente es el código de un productor consumidor "automático" para su uso desde la consola de texto: 1. /** 2. * Buffer.java Con primitivas de sincronizacion 3. */ public class Buffer 6. { 7. private static final int BUFFER_SIZE = 5; 8. private int cant; // items en el buffer 9. private int in; // Proximo libre 10. private int out; // Proximo lleno 11. private Object[] buffer; 13. public Buffer() 14. { 15. cant = 0; // Comienza Vacio 16. in = 0; 17. out = 0; 18. buffer = new Object[BUFFER_SIZE]; 19. } 21. public synchronized void poner(object item) { 22. while (cant == BUFFER_SIZE) { 23. try {wait();} -6-

7 24. catch (InterruptedException e) { } 25. } cant; //Agrega al buffer 27. buffer[in] = item; 28. in = (in + 1) % BUFFER_SIZE; 29. if (cant == BUFFER_SIZE) 30. System.out.println("Entro " + item " Buffer LLENO"); 32. else 33. System.out.println("Entro " + item " Buffer Size = " + cant); 35. notify(); // despierta algun consumidor 36. } 37. public synchronized Object sacar() { 38. Object item; 39. while (cant == 0) { 40. try {wait(); } 41. catch (InterruptedException e) { } 42. } cant; 44. item = buffer[out]; 45. out = (out + 1) % BUFFER_SIZE; 46. if (cant == 0) 47. System.out.println("Salio " + item + " Buffer VACIO"); 48. else 49. System.out.println("Salio " + item " Buffer Size = " + cant); 51. notify(); 52. return item; 53. } 54. } Este buffer es el objeto encargado de hacer la sincronización entre el productor y el consumidor. No es un objeto activo (No tiene threads). En Java cada objeto tiene un lock (monitor es el meta-lenguaje de Java). Al ejecutar un método synchronized se toma este monitor y se lo libera al terminar la ejecución del método. Solo un thread puede tener el monitor de un objeto. El lazo de sincronización está en el uso de: wait() que libera el monitor del objeto y suspende al thread que lo llama hasta que ocurra una interrupción. notify() que provoca una interrupción a algún thread que espera por el monitor del objeto. notifyall() que provoca una interrupción en todos los threads que esperan por el monitor del objeto. Como pueden interrumpirse (y salir del wait( )) por otras causas, se hace el while -7-

8 por la condición de las líneas 23 y 40. El productor es: 1. /** 2. * Productor.java 3. */ 5. import java.util.*; 7. public class Productor extends Thread 8. { 9. private Buffer buffer; 10. final static int NAP_TIME=5; 11. public Productor(Buffer b) {buffer = b;} 12. public void run() 13. { 14. Date mens; 15. while (true){ 16. dormir();mens = new Date(); 17. System.out.println("Producido " + mens); 18. buffer.poner(mens); 19. } 20. } 21. public static void dormir() { // para suspenderse 22. int sleeptime = (int) (NAP_TIME * Math.random () ); 23. try { Thread.sleep(sleepTime*1000); } 24. catch(interruptedexception e) { } 25. } 26. } y el consumidor 1. /** 2. * Consumidor.java 3. */ 5. import java.util.*; 7. public class Consumidor extends Thread 8. { 9. private Buffer buffer; 10. final static int NAP_TIME=5; 11. public Consumidor(Buffer b) 12. {buffer = b;}

9 14. public void run() 15. {Date mens; 16. while (true){ 17. dormir(); 18. System.out.println("Consumidor quiere consumir."); 19. mens = (Date)buffer.sacar(); 20. } 21. } 22. public static void dormir() { // para suspenderse 23. int sleeptime = (int) (NAP_TIME * Math.random() ); 24. try { Thread.sleep(sleepTime*1000); } 25. catch(interruptedexception e) { } 26. } 27. } Para su ejecución hace falta una clase como la que sigue: 1. /** * Prubuf.java */ 4. public class Prubuf 5. { 6. public static void main(string args[]) { 7. Buffer sr = new Buffer(); 8. Productor pt = new Productor(sr); 9. Consumidor ct = new Consumidor(sr); 10. pt.start(); ct.start(); 11. } 12. } En el archivo zip correspondiente a esta guía encontrará un productor-consumidor con interface gráfica como la que sigue. El código sin embargo no hace uso de un thread continuo como el primer código. Ejercicios: 1. Resolver el Productor Consumidor con un thread para cada uno mas los threads necesarios para la interface gráfica. 2. Generalizarlo para "n" productores y "k" consumidores (a ingresar desde la interface). 3. Resolver con una interface gráfica parecida el problema de los Fumadores. 4. Haga un programa que permita hacer Drag & Drop de una forma simple a través de un canvas. Use las clases asociadas a Java2D para determinar los límites y dibujar las formas (no hay threads). 5. Programe un juego simple con una víbora que se mueve en la pantalla. Ud dispone de una palmeta (rectángulo) para aplastarle la cabeza. Si no lo logra, una marca de la palmeta queda en la pantalla y la víbora debe esquivarla. -9-

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

Multitarea en Java. Rafa Caballero - UCM

Multitarea en Java. Rafa Caballero - UCM Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

Programación Java Curso 2006-1 C Draw

Programación Java Curso 2006-1 C Draw Programación Java Curso 2006-1 C Draw FIUBA Introducción: Prof.. María Feldgen Ing. Osvaldo Clúa En Java, para dibujar se usa el contexto gráfico de un componente. Según las plataformas, este contexto

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

Java: Programación Multithread

Java: Programación Multithread Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro Utilizando Clases Definidas en Java La manera de utilizar una clase previamente definida

Más detalles

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Concurrencia en Android LSUB, GYSC, URJC

Concurrencia en Android LSUB, GYSC, URJC Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Hebras y Sincronización en Java

Hebras y Sincronización en Java Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz

Más detalles

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

UNIDAD III.- Programación Concurrente

UNIDAD III.- Programación Concurrente UNIDAD III.- Programación Concurrente Sincronización Todo thread tiene una prioridad. Un thread hereda su prioridad, cuyo valor está entre 1 y 10 La prioridad puede modificarse con los métodos: setpriority()

Más detalles

Práctica 4: Java Remote Method Invocation (RMI)

Práctica 4: Java Remote Method Invocation (RMI) Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado

Más detalles

Monitores Ing. Iván Medrano Valencia

Monitores Ing. Iván Medrano Valencia Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática Programación Concurrente y Distribuida Práctica 5 1. OBJETIVO. Ing. Iván Medrano Valencia En esta práctica, comprobaremos

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación NORMAS PARA LA ENTREGA DE LOS LABORATORIOS Coloque el nombre de los integrantes del grupo, nombre del profesor,

Más detalles

Applets y Aplicaciones

Applets y Aplicaciones Applets y Aplicaciones En JAVA es posible crear dos tipos de programas: Applets Son pequeños programas que requieren de un browser W 3 JAVA-compatibe para ejecutarse (actualmente, Netscape, Microsoft Explorer,

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Java y JVM: programación concurrente

Java y JVM: programación concurrente Java y JVM: programación concurrente Adolfo López Díaz Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica Resumen: El lenguaje de programación Java proporciona, sin necesidad

Más detalles

Java: Clases Abstractas e Interfaces

Java: Clases Abstractas e Interfaces Clases abstractas e interfaces Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl A nivel conceptual,

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Práctica 1. Monitores en Java.

Práctica 1. Monitores en Java. Práctica 1 - Programación Concurrente 3º I.S. Pág: 1/15 Práctica 1. Monitores en Java. Programación Concurrente. 3º I.S. Dpto. Lenguajes y Sistemas Informáticos Escuela Técnica Superior de Ingeniería Informática

Más detalles

Programación concurrente en Java

Programación concurrente en Java Diseño Y Aplicaciones de Sistemas Distribuidos Programación concurrente en Java Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Threads en

Más detalles

void main(void) { string lname; list <string> lnamelist; cout << "Please enter your list of last names finishing with `.`"<<endl;

void main(void) { string lname; list <string> lnamelist; cout << Please enter your list of last names finishing with `.`<<endl; Segundo Certamen 1.- Haga uso de la información adjunta y desarrolle un programa en C++ que lea apellidos de teclado y los almacene en una lista. Luego se pide listar los apellidos en orden alfabético

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

Primer Parcial Septiembre 5 de 2009

Primer Parcial Septiembre 5 de 2009 Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar

Más detalles

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index. Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.

Más detalles

El lenguaje de programación Java

El lenguaje de programación Java Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red

Más detalles

Programación Concurrente y Paralela. P(S) ; sección crítica P(S);

Programación Concurrente y Paralela. P(S) ; sección crítica P(S); 2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles

Más detalles

Programación Concurrente. Curso Java 2012, 2013 Juan Manuel Fernández Peña

Programación Concurrente. Curso Java 2012, 2013 Juan Manuel Fernández Peña Programación Concurrente Curso Java 2012, 2013 Juan Manuel Fernández Peña Programación secuencial Hasta ahora se ha trabajado con programas secuenciales Se ejecuta paso a paso Son deterministas: si se

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

3.9 Patrón Distributed callback

3.9 Patrón Distributed callback 3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima

Más detalles

Manejo de eventos AWT

Manejo de eventos AWT Manejo de eventos AWT En las aplicaciones en modo consola, nuestro método main determina el orden en el que se ejecutan las operaciones de nuestro programa. En las aplicaciones con interfaces gráficas

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

Sistemas Operativos Práctica 4

Sistemas Operativos Práctica 4 Sistemas Operativos Práctica 4 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Carnet Nombre: Examen C++ Grupo A Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: AGENDA TELEFÓNICA (4.0 PTOS.)...1 3. EJERCICIO 2:

Más detalles

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.

Más detalles

Creación de Applets Simples

Creación de Applets Simples Seminario Creación de Applets Simples Junio 2004 Michael González: mgh@unican.es GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González Harbour 1 Creación de Applets Simples 1. Introducción 2. Estructura

Más detalles

1. Qué tipos de relación hay entre las siguientes clases?

1. Qué tipos de relación hay entre las siguientes clases? Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia

Más detalles

Secretos de la Programación Concurrente

Secretos de la Programación Concurrente Secretos de la Programación Concurrente Stuart Perez, Luis Castro Autómatas y Compiladores, Escuela de Ciencias de la Computación e Informática, San Pedro de Montes de Oca, Costa Rica jstuartp@gmail.com

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase Programación Orientada a Objetos Implementación en Java Angela C. Carrillo Ramos Agenda Implementación y uso de clases en Java Ejemplo clase CuentaBancaria 1 Ejemplo Diseño Cuenta Bancaria (1) Diseñar

Más detalles

JAVA: Applets. Diseño de aplicaciones web. mperez@fi.upm.es

JAVA: Applets. Diseño de aplicaciones web. mperez@fi.upm.es JAVA: Applets Diseño de aplicaciones web mperez@fi.upm.es Características de Java (I) Simple El programador no tiene que gestionar la memoria! Orientado a Objetos Encapsulación de datos y reutilización.

Más detalles

Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García

Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Práctica 11 Programación Java San Sebastián, mayo 1999 Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Informática 2: Práctica nº 11 página 1 INDICE

Más detalles

Problema B Olonso y los laberintos

Problema B Olonso y los laberintos Problema B Olonso y los laberintos El siguiente problema es un entretenido juego donde debes ayudar a Olonso a cumplir diferentes misiones. Nuestro personaje estará atrapado en distintos laberintos y tú

Más detalles

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases

Más detalles

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... Contenido Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... 5 Introducción Es tiempo de hablar en detalle de lo que significa

Más detalles

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final Certamen Final 1. Se tiene una aplicación Java que muestra dos botones. Cuando presionamos el botón de la izquierda, incrementa el número mostrado en el botón de la derecha. Cuando presionamos el botón

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE LA APLICACIÓN HELP DESK CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado

Más detalles

Componentes Swing. Las clases cuyo nombre comienza por J forman parte de Swing. Todas las demás están incluidas en AWT (Abstract Window Toolkit)

Componentes Swing. Las clases cuyo nombre comienza por J forman parte de Swing. Todas las demás están incluidas en AWT (Abstract Window Toolkit) Componentes Swing Las clases cuyo nombre comienza por J forman parte de Swing. Todas las demás están incluidas en AWT (Abstract Window Toolkit) Component es una clase abstracta que representa a cualquier

Más detalles

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Convertidor Dec->Hex y Hex->Dec (5.0 ptos.)... 1 1.1.1 Apartado A (4.0 ptos.)... 1 1.1.2 Apartado B (1.0

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

Programación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas

Programación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas Programación concurrente en Java. Breve introducción Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas Concurrencia en Java Hilos de ejecución Clase Thread e interfaz Runnable Pausas Interrupciones

Más detalles

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Máquina Expendedora (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Circulo (1.0 pto.)... 3 1.3 Ejercicio

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Concurrencia: Exclusión mutua y Sincronización

Concurrencia: Exclusión mutua y Sincronización Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Manual de Usuario UCMCompra

Manual de Usuario UCMCompra Manual de Usuario UCMCompra Este manual está orientado a los usuarios iniciales del sistema tales como Secretarias y Jefes de Área y le introducirá en los conceptos básicos del uso de la plataforma UCMCompra,

Más detalles

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,

Más detalles

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha 2006-08

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha 2006-08 PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet Revisión 1.1 Fecha 2006-08 Índice 1. Acceder 2. Menú 3. Gestión Básica 3.1 Añadir 3.2 Editar 3.3 Eliminar 3.4 Eliminación de registros

Más detalles

Mesa de Ayuda Interna

Mesa de Ayuda Interna Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...

Más detalles

Práctica 5: Common Object Request Broker Architecture CORBA

Práctica 5: Common Object Request Broker Architecture CORBA Práctica 5: Common Object Request Broker Architecture CORBA Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es entender mejor el funcionamiento de CORBA (Common Object Request Broker

Más detalles

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)... Examen Junio Grupo A Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

Más detalles