Práctica #1 Patrón de diseño Singleton
|
|
|
- José Manuel Paz Olivares
- hace 8 años
- Vistas:
Transcripción
1 Práctica #1 Patrón de diseño Singleton 1.1 Objetivos El objetivo de esta primera práctica es consolidar los conceptos vistos en teoría sobre el PD Singleton. Para ello es aconsejable que haya asistido a las clases previas de teoría y haya repasado los apuntes de las mismas. Vamos a utilizar este patrón con dos objetivos distintos: i. Para almacenar información sobre el estado de la aplicación. ii. Para asegurar que a un determinado recurso sólo tiene acceso un objeto y además en exclusión mutua. 1.2 Práctica a realizar Se va a realizar una aplicación que primero solicite al usuario su nombre y una contraseña (vea la Figura 1.1.(a)). Si la autenticación es correcta mostrará una ventana en la que aparecerá información sobre quién y cuándo ha ejecutado la aplicación (vea la Figura 1.1.(b)). Si la autenticación falla de momento no haremos nada, será en una práctica posterior donde implementaremos distintas políticas de rechazo. El siguiente caso de uso recoge cómo los usuarios se autentican para usar la aplicación:
2 2 Práctica #1. Patrón de diseño Singleton (a) Ventana de autenticación (b) Ventana de aplicación Figura 1.1: Interfaz de usuario.
3 1.2. Práctica a realizar 3 UC 001 Autenticación de usuarios Versión 1.0 (Abril/2005) Autores ffl David Ruiz (Universidad de Sevilla) Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un usuario se autentique. Precondición Ninguna Secuencia Paso Acción normal 1 El sistema solicita al usuario que introduzca su nombre de usuario y su clave. 2 El actor usuario introduce su nombre de usuario y contraseña y pulsa el botón Login!. 3 Si la autenticación es correcta, el sistema permitirá el acceso a la aplicación principal 4 Si la autenticación no es correcta, el sistema no permitirá el acceso a aplicación 5 El sistema registra el evento de la autenticación del usuario. Postcondición Ninguna Frecuencia 100 veces/día Importancia Vital Urgencia Inmediatamente Estabilidad Comentarios Alta Una vez que el usuario se ha autenticado, la aplicación se presentará de forma personalizada para el mismo. Para simplificar la codificación entenderemos que una autenticación es correcta siempre que la clave sea pepe. Cuando se introduzca esta clave sin nombre de usuario se tomará Anonymous como nombre de usuario. Además se tienen los distintos requisitos (no) funcionales: FRQ 001 Versión Autores Descripción NFR 001 Versión Autores Descripción Archivo de registro 1.0 (Abril/2005) ffl David Ruiz (Universidad de Sevilla) El sistema deberá registrar la actividad de la aplicación en un archivo de texto en el que cada evento irá precedido de la fecha y la hora a la que ocurre. Acceso a la base de datos 1.0 (Abril/2005) ffl David Ruiz (Universidad de Sevilla) El sistema deberá minimizar el número de accesos a la base de datos, ya que existen problemas de rendimiento en el servidor de bases de datos. Con estos requisitos, el PD Singleton ayuda a garantizar que: ffl Existe un único objeto que almacena la información del usuario que trabaja con la aplicación (nombre de usuario y password). Dicho objeto se
4 4 Práctica #1. Patrón de diseño Singleton puede utilizar para personalizar la aplicación en función al nombre del usuario. ffl Existe un único objeto que escribe en el archivo de registro en exclusión mutua con el resto de objetos del sistema. 1.3 Desarrollo de la práctica El diagrama de clases de la práctica es el que se muestra en el Figura 1.2. Empezaremos por la clase que implementa el objeto encargado de escribir en el fichero de log. Cree el paquete isw2.lab3.traverv0 y añada la clase Tracer. Las variables privadas y el constructor de esta clase son los siguientes: private static Tracer instance; private PrintWriter out; private DateFormat dt; private static final String filename="log.txt"; private Tracer(){ try{ out = new PrintWriter( new BufferedOutputStream( new FileOutputStream(filename,true)),true); dt = DateFormat.getDateTimeInstance( DateFormat.SHORT, // date style DateFormat.DEFAULT, // time style new Locale("es","ES")); // localisation (language,country) catch(exception e){ e.printstacktrace(); Fíjese que el constructor de esta clase es privado y que es responsabilidad del método getinstance() devolver el único objeto que se puede crear de la misma. Los métodos para añadir una nueva línea al archivo de log y devolver el contenido del mismo son los siguientes: synchronized public void addline(string msg){ out.print(dt.format(new Date())); out.println(": " + msg); public BufferedReader getcontent(){ BufferedReader result=null;
5 1.3. Desarrollo de la práctica 5 isw2.lab3.application ApplicationFrm Test +testauth() +testnoauth() isw2.lab3.loginv0 uses <<Interface>> IResource +run() LoginFrm -dologin() -doexit() <<singleton>> Login +Login getinstance() +getusername(): string +setusername(string) +setpassword(string) +getresource(): IResource +setresource(iresource) +authenticate() uses isw2.lab3.tracerv0 <<singleton>> Tracer +Tracer getinstance() +addline(string) +getcontent():bufferedreader uses Figura 1.2: Vista lógica de las capas de la aplicación.
6 6 Práctica #1. Patrón de diseño Singleton try{ result = new BufferedReader(new FileReader(filename)); catch(exception e){ e.printstacktrace(); return result; Fíjese que el método addline es synchronized, por lo que garantiza que sólo un hilo del sistema puede estar ejecutando su código simultáneamente. Asimismo, el método getcontent() no es synchronized, por lo que se podrá leer el archivo mientras se añade una línea. El siguiente paso es crear un paquete isw2.lab3.loginv0 y añadir la interface IResource, la clase Login y la clase visual LoginFrm que extenderá a Jframe. El primer interfaz contendrá un único método run(), ese método será el que se ejecute cuando la autenticación tenga éxito. Para la clase Login, las variables privadas y el constructor son los siguientes: private String username; private String password; private static Login instance; private static IResource resource; private static final String masterpassword = "pepe"; private Login(){ username=""; password=""; Fíjese que la única forma de obtener la referencia al único objeto que puede existir de Tracer es invocando a su método estático getinstance(). Los métodos get y set los utilizaremos para leer y escribir, respectivamente, las distintas propiedades. A modo de ejemplo el código que se encarga de leer y escribir la propiedad Username es el siguiente: public String getusername(){ String result; if (username.equals("")){ username = "Anonymous"; result = username; return result;
7 1.3. Desarrollo de la práctica 7 public void setusername(string u){ username = u; Para autenticar a los usuarios vamos a mostrar la ventana de la Figura 1.1.(a), delegando esta tarea en un método privado validate() que será invocado cuando se pulse el botón de Login! de la ventana anterior. Este método será el encargado de escribir en el archivo de log, quedando: public void authenticate(){ (new LoginFrm()).show(); boolean validate(){ boolean result = false; if (password.compareto(masterpassword) == 0) { Tracer.getInstace().addLine(getUsername() + " logged"); result = true; else { Tracer.getInstace().addLine(getUsername() + " refused"); return result; Fíjese que esta implementación permite el acceso a cualquier usuario cuya contraseña sea masterpassword, sin que afecte el nombre del usuario en la aplicación. Para terminar con este paquete falta la clase visual LoginFrm. Lo primero que hay que hacer una vez que hemos añadido la clase visual al paquete es darle el aspecto de la Figura 1.1.(a). Al JTextField que captura el nombre del usuario le llamaremos usernametxt, al JPasswordField le llamaremos passwordtxt y a los botones de Login! y Exit le llamaremos loginbtn y exitbtn, respectivamente. El código asociado al evento actionperformed lo escribiremos en sendos métodos privados dologin y doexit, quedando: private void dologin(){ login.setusername(usernametxt.gettext()); login.setpassword(new String(passwordTxt.getPassword())); if (login.validate()){ login.getresource().run(); setvisible(false); private void doexit(){
8 8 Práctica #1. Patrón de diseño Singleton System.exit(0); Fíjese que login es la referencia al objeto que guarda la información del usuario. Cuando se pulsa el botón de Login! se le da valor a este objeto y se invoca al método privado validate(). En esta primera práctica, cuando falla la autenticación no vamos hacer nada. La política a seguir cuando se produce un fallo (finalizar la aplicación, limitar el número de fallos, etc) vamos a tratarla en una práctica posterior. Para terminar ya sólo faltan las clases del paquete isw2.lab3.application. En éste vamos a tener 3 clases. La primera de ellas es una clase visual llamada ApplicaticationFrm que extenderá a JFrame e implementará el interfaz IResource, su aspecto es el de la Figura 1.1.(b), donde el texto Anonymous es un JLabel, al que llamaremos usernamelbl, que cuando se carga la ventana muestra el nombre del usuario que ha iniciado la sesión (esta información la obtendrá del único objeto de la clase Login que puede existir en el sistema). De la misma forma se tiene un control JTextArea, al que llamaremos logtxt, que cuando se carga la aplicación muestra el contenido del archivo de log. En el archivo de log se tiene que añadir una entrada para registrar que la aplicación se inicia y se cierra. De esta forma, los manejadores de los eventos windowopened y windowclosing son, respectivamente: private void dowindowopened(){ usernamelbl.settext(login.getinstance().getusername()); Tracer.getInstace().addLine(Login.getInstance().getUsername()+ " has started the application"); try { logtxt.read(tracer.getinstace().getcontent(),null); catch (IOException e1) { e1.printstacktrace(); private void dowindowclosing(){ Tracer.getInstace().addLine(Login.getInstance().getUsername()+ " has closed the application"); System.exit(0); Esta clase tiene que implementar el método run(), que es lo que se ejecuta cuando la autenticación tiene éxito. En este caso, mostrar la ventana de la aplicación, es decir: public void run(){ this.show();
9 1.4. Ejercicios 9 La siguientes clases son Test y Main, la primera contendrá un método testauth() para ejecutar la aplicación con autenticación y un método testnoauth() para ejecutarla sin autenticación. Main es el punto de entrada a la aplicación, cuyo objetivo es crear un objeto de tipo Test y llamar a sus métodos, por ejemplo: public class Main { public static void main(string args) { Test t = new Test(); t.testauth(); //t.testnoauth();... public class Test { Test(){ void testauth() { Login.getInstance().setResource(new ApplicationFrm()); Login.getInstance().authenticate(); void testnoauth() { (new ApplicationFrm()).show(); Fíjese que para ejecutar la aplicación sin autenticación basta con llamar el método show() del JFrame (también valdría llamar al método run() de IResource) que contiene a la aplicación. Por el contrario, si queremos autenticación tenemos que obtener la referencia al objeto de Login, darle valor a su propiedad Resource con el objeto que implementa el método run() y llamar a su método authenticate(). 1.4 Ejercicios I CUESTIÓN 1.1: Qué pasaría si quitásemos el modificador static en el método getinstance()?
10 10 Práctica #1. Patrón de diseño Singleton I CUESTIÓN 1.2: Y el modificador synchronized del método addline()? I CUESTIÓN 1.3: Qué efectos tiene en el rendimiento de un método hacerlo synchronized? Haga un test que mida el tiempo que tardan 1000 hilos en ejecutar invocaciones de un método síncrono frente a uno que no lo es. 1.5 Solución Los fuentes completos de esta práctica estarán disponibles en la página Web de la asignatura cuando se imparta en el laboratorio.
Capítulo 1 Patrón de diseño Singleton
Capítulo 1 Patrón de diseño Singleton 1.1. Objetivos El objetivo de esta primera práctica es consolidar los conceptos vistos en teoría sobre el PD Singleton. Para ello es aconsejable que haya asistido
Práctica #2. Patrón de diseño Factory Method. 2.1 Objetivos. 2.2 Práctica a realizar
Práctica #2 Patrón de diseño Factory Method 2.1 Objetivos El objetivo de esta práctica es consolidar los conceptos vistos en teoría sobre el PD Factory Method. Para ello es aconsejable que haya asistido
Ingeniería del Software Separación entre Presentación y Lógica del Negocio
Introducción En este laboratorio desarrollaremos una aplicación que verifica si una cuenta y un password son correctos. En dicha aplicación la presentación y la lógica del negocio se definirán en dos capas
Examen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN
EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio
TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE
MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE Los modificadores de acceso, como su nombre indica, determinan desde qué clases se puede acceder a un determinado elemento. En Java tenemos 4 tipos:
USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON
USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON Una aplicación sin usar Formulario A continuación vamos a desarrollar una aplicación sencilla que permita calcular el área del triángulo dado los valores
Programación Conducida por eventos Event-driven programming. Agustín J. González ELO329/ELO330
Programación Conducida por eventos Event-driven programming Agustín J. González ELO329/ELO330 1 Introducción Este tema tiene su aparición en la programación de interfaces gráficas de usuarios. Los programas
Estructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Programación concurrente
Programación concurrente Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Programación concurrente
Código Fuente. Creamos en C:\ una carpeta para ubicar el código fuente del servidor. En mi caso, he creado una carpeta denominada rmi4
EL EJEMPLO El proceso servidor provoca un eco de la entrada de teclado enviada por el proceso cliente. Por sencillez, ejecutaremos tanto el servidor como el cliente en la máquina local. El sistema operativo
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)
Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC) Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial
2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas
Apellidos Nombre Firma NIA Grupo EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas Pregunta 1 (0,5 puntos).- Indicar si las siguientes afirmaciones
Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos
Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE Ejemplos III: Sopa de Letras 1 Objetivo Mostrar las diferentes estrategias que puede seguir un gestor que tiene que ejecutar una tarea compleja que puede ser paralelizada en diferentes
Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...
Cuadernillo de examen ASIGNATURA Laboratorio de Sistemas Operativos Abiertos (Java) CÓDIGO 321 CONVOCATORIA Extraordinaria de Septiembre de 2003 PLAN DE ESTUDIOS 1996 ESPECIALIDAD Sistemas CURSO 2002/2003
GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN
GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN INTRODUCCION Un arreglo es una colección de variables del mismo tipo, referidos por un nombre común. En Java, los arreglos tienen una o más dimensiones,
Examen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
Esta aplicación se compone de 3 programas o clases, según el siguiente esquema: SueldoMedio.java. Sueldo.java
PROGRAMACIÓN I FECHA: 10-septiembre-2002 Programa de ficheros de E/S (lau puntu) Realizar una aplicación en Java para calcular el sueldo medio mensual de los empleados en activo en una empresa de Vitoria,
Examen de Métodos de Programación Ingeniería Informática Primera Parte
Examen de Métodos de Programación Ingeniería Informática Primera Parte Cuestión 1. (2 puntos) Se pretende guardar y recuperar matrices de números reales de cualquier dimensión en ficheros binarios de tipos
USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON
USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON Una aplicación sin usar Formulario A continuación vamos a desarrollar una aplicación sencilla que permita calcular el área del triángulo dado los valores
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Manejo de Excepciones
Manejo de Excepciones M. Consuelo Franky Julio Carreño Pontificia Universidad Javeriana 1 Temario Captura de excepciones Excepciones estándares Cómo provocar una excepción Cómo definir nuevas excepciones
Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar
Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar Introducción El alumno creará cuatro programas en java que manejen control de flujo mediante las sentencias de bucle while y do/while,
Diseño de tipos Igualdad, representación, código, copia y relación de orden
Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones
Aplicaciones Cliente-Servidor Con Datagramas
Aplicaciones Cliente-Servidor Con Datagramas User Datagram Protocol (UDP) UDP es un protocolo que no garantiza la comunicación entre dos aplicaciones. No está basado en conexión. Envía paquetes de datos
El servicio de echo con sockets
PRÁCTICA 2 El servicio de echo con sockets E l objetivo de esta práctica es crear y ejecutar una aplicación cliente servidor "echo" basada en sockets TCP pero estructurándola según el modelo de objetos
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
Colas. 5.1 Implementación
Capítulo 5 Colas Las colas al igual que las pilas son un tipo especial de listas en las cuales los elementos se insertan por un lado y se eliminan por el otro. Es decir se sacan en el mismo orden en que
Estructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
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
Ejemplo de GUI con Swing
Ejemplo de GUI con Swing Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Una aplicación Swing sencilla El
Programación Concurrente y Distribuida Ingeniería Informática Facultad de Ciencias Universidad de Cantabria.
Programación Concurrente y Distribuida Ingeniería Informática Facultad de Ciencias Universidad de Cantabria. Documento: Práctica 1 Sopa de Letras Autores: Fecha: Laura Barros J.M. Drake 5-6 Octubre Objetivo
El servicio de echo en Java-RMI
PRÁCTICA 3 El servicio de echo en Java-RMI E l objetivo de esta práctica es crear y ejecutar una aplicación cliente servidor echo basada en java-rmi. La práctica tiene dos partes: La primera parte implementa
Introduciendo datos desde el
Introduciendo datos desde el teclado Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Crear programas interactivos que lean datos
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Unidad 3 Programación Orientada a Objetos. Programación JAVA. Cuestiones I:
WEB: http://dis.um.es/~lopezquesada Pag. 1 Unidad 3 Programación Orientada a Objetos. Programación JAVA. Cuestiones I: Alumno: 1. Corregir los errores del siguiente código JAVA. (0.5p): // Obtener el menor
Pasos requeridos para establecer el manejo de eventos para un componente de GUI.
Manejo de eventos con clases anidadas. Por lo general un usuario interactúa con una GUI para indicar las tareas que ésta debe realizar. Por ejemplo, al escribir un mensaje de correo electrónico, pulsamos
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007.
Dpto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación, Ciudad Universitaria, 28040 Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007. Normas de examen: Con
Ejemplos de uso de ficheros de acceso secuencial
Ficheros de texto Ejemplos de uso de ficheros de acceso secuencial Fernando 958 24 05 99 [email protected] CCIA - Despacho 17 3 de diciembre de 1977 1 6.6 Juan Carlos 958 24 05 97 [email protected]
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
Clases abstractas e interfaces en Java
Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura
CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción
CORBA desde Java Diego Sevilla Ruiz Sistemas Distribuidos Índice 1. Introducción 1 2. Primeros pasos 1 2.1. Fichero IDL................................... 1 2.2. Cliente......................................
Métodos CON valor de retorno
Métodos Estáticos C# Fundamentos de Programación. Objetivos del tema: Qué es un método? Qué métodos conoces? Métodos que NO devuelven valor. Métodos que SI devuelven un valor. Paso de parámetros. Variables
Conceptos básicos de Orientación a Objetos, manejo con Eclipse.
Conceptos básicos de Orientación a Objetos, manejo con Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
Práctica: Creación de un programa C# sencillo
Introducción a C# 1 Práctica: Creación de un programa C# sencillo Objetivos Al final de esta práctica, usted será capaz de: Crear un programa C#. Compilar y ejecutar un programa C#. Usar el Visual Studio
Examen de Programación II (Ingeniería Informática)
Examen de Programación II (Ingeniería Informática) Septiembre 2010 1) Lenguaje C (2 puntos) Escribir el módulo "elimina_substring" (ficheros elimina_substring.h y elimina_substring.c) que defina una única
Parte I: Programación en un lenguaje orientado a objetos
Parte I: Programación en un lenguaje orientado a objetos 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos compuestos 5. Modularidad 6. Tratamiento
HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
Java Singleton. Ejemplo de Java Singleton (Patrones y ClassLoaders)
Como ya he comentado en varias ocasiones el conocimiento de los patrones de diseño es algo clave a la hora de abordar desarrollos y de solucionar problemas.hoy voy a hablar un poco a detalle de uno de
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 12 de septiembre de 2013 Disponer sobre la mesa en lugar visible un documento
Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005
24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos
Interfaces gráficas en Java GUIs Graphical User Interface
Diseño Y Aplicaciones de Sistemas Distribuidos Interfaces gráficas en Java GUIs Graphical User Interface Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica
Threads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución.
Threads o Hilos Los hilos son otra forma de crear la posibilidad de concurrencia de actividades; sin embargo, la gran diferencia es que los hilos comparten el código y el acceso a los datos. En cierta
Programación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Práctica 5c. Práctica 5c. José M. Ordax
Práctica 5c José M. Ordax [email protected] 1 Copyright 2004 Arancha Ocaña Díaz-Ufano Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano
FACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Fundamentos de Programación Orientada a Objetos PRÁCTICA NÚM. [ 7 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería
Tema 6. Threads: programas multitarea
Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos
CAPÍTULO 3. PROCESOS VS. HILOS
CAPÍTULO 3. PROCESOS VS. HILOS 3.1 Primitivas de sincronización en Java Java no tiene semáforos como primitivas de sincronización. Sin embargo, proporciona otras primitivas diferentes con las cuales sí
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1 Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1.
Clases en Java. Declaración
Clases en Java Declaración Class Una clase puede ser definida por el usuario o por uno de los paquetes incorporados a Java y se declara con la palabra reservada class. Los métodos y las variables definidas
Procesadores del Lenguaje Práctica 1: Ejemplo sencillo
Procesadores del Lenguaje Práctica 1: Ejemplo sencillo ANTLR es una herramienta que integra la generación de analizadores léxicos, sintácticos, árboles de sintaxis abstracta y evaluadores de atributos.
Examen de Prácticas de Programación Ingeniería Informática
Examen de Prácticas de Programación Ingeniería Informática Junio 2008 1) Cuestiones 1.a) (0.75 puntos) Mostrar los contenidos del fichero salida.txt tras la ejecución del método main de la clase principal:
LISTAS CIRCULARES. // Métodos private CElemento() {} // constructor. ultimo
LISTAS CIRCULARES Una lista circular es una lista lineal en la que el último elemento apunta al primero. Entonces es posible acceder a cualquier elemento de la lista desde cualquier punto dado. Las operaciones
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS
Estructuras de Datos Clase 4 Pilas y colas
Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo
Programación Orientada a Objetos en C#.NET CAPÍTULO 8 EXCEPCIONES. Ing. Bruno López Takeyas, M.C.
CAPÍTULO 8 EXCEPCIONES 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Cómo se controlan los posibles errores que ocurran durante la ejecución de una aplicación? Un programador, puede
Universidad ORT - Arquitectura de Software. Requisitos
Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación
Programación basada en eventos Event- Based Programming : Conceptos. ELO329: Diseño y Programación Orientados a Objetos
Programación basada en eventos Event- Based Programming : Conceptos ELO329: Diseño y Programación Orientados a Objetos Nuevo paradigma de programación En la programación basada en eventos (o programación
Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)
Examen de Ejemplo Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED) Parte Teórica (2,5 puntos). La respuesta correcta se indica
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 31 de agosto de 2012 Disponer sobre la mesa en lugar visible un documento de identificación
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
Guía - Taller # 2 (JAVA)
CEET - Distrito Capital Programa de Formación: ADSI 150752 TRIMESTRE VI Conocimiento de Conocimiento: Aplicar diversos estilos de Programación usando herramientas para Desarrollo Web Instructor: Ing. Espec.
