Introducción. Curso de Middleware. Práctica 3.
|
|
- Rubén Peña Torres
- hace 7 años
- Vistas:
Transcripción
1 Introducción En esta nueva práctica vamos a explorar el concepto de modo de vida de un objeto remoto. Este concepto es fundamental para entender el funcionamiento del mismo y es necesario para muchas de las decisiones de diseño y arquitectura de una aplicación distribuida. Existen varios modos de vida de los objetos remotos y cada middleware suele ofrecer unos u otros pero todos ellos suelen ser variantes más o menos similares. Este concepto no debemos confundirlo con el de ciclo de vida que también abordaremos a lo largo de las prácticas. 1 de 15
2 Jugando con el Objeto Remoto Para seguir con nuestro trabajo, os recomiendo que hagáis copia de seguridad de lo que ya tenemos desarrollado y sigamos trabajando sobre el código de nuestra práctica anterior. Sobre el código anterior vamos a añadir un poco de código a nuestra calculadora para que nos permita guardar y recuperar un número. El cambio es rápido. Bastaría con añadir el siguiente código a la calculadora: public class Calculadora : System.MarshalByRefObject private int dato = -1; public void GuardarDato(int d) dato = d; public int ObtenerDato() return dato; public int Dato get return dato; set dato = value;.. resto del código.. Además de los métodos para guardar o recuperar la información ( GuardarDatos y ObtenerDatos ), hemos utilizado un atributo de C# ( Dato ). Un atributo en C# hace la misma función que los get/set de Java. Permite recubrir una variable para controlar el acceso. También permite disfrazar de variable una función. Es un concepto muy potente y merece la pena conocerlo. Consulta tu manual de C# al respecto. Y ahora añadimos algunas llamadas a estos métodos desde nuestro cliente. Por ejemplo, os propongo algo del estilo: 2 de 15
3 public static void Main(string[] args) // código antiguo Console.WriteLine("Creando la calculadora"); Calculadora calc = new Calculadora(); Console.WriteLine("El valor del dato al principio =" + =" + calc.obtenerdato()); Console.WriteLine("Voy a guardar 10 en el dato."); calc.guardardato(10); Console.WriteLine("Ahora, el valor del dato es calc.obtenerdato()); // el resto del código antiguo iría aquí No parece muy complicado, verdad? Realmente lo único que hacemos es preguntar por el valor de una variable, la cambiamos posteriormente y volvemos a comprobar que el valor se ha almacenado correctamente. Seguramente hayamos hecho cosas parecidas infinidad de veces. Es importante que lo pruebes!. No sigas hasta haber conseguido esta parte!. Prueba primero en una arquitectura no distribuida y seguidamente vuelve a probar con el ejemplo cliente/servidor. Recuerda que si comentas la línea en la que configuras Remoting del cliente, pasas a modo no distribuido. En mi caso, he obtenido lo siguiente cuando la aplicación era local: 3 de 15
4 Ahora volvemos a descomentar la línea de configuración de Remoting en el cliente para volver a tener un funcionamiento distribuido. En caso, yo he obtenido lo siguiente: Has obtenido el resultado que esperabas? Seguramente no, verdad?. Si observamos la traza generada, el sistema nos dice que el valor del dato después de haberlo cambiado por 10.!Sigue siendo -1!!!. Cómo es posible que suceda esto?. Debería valer 10, no? Vamos a descubrir qué está pasado y las razones que hay detrás de este comportamiento tan confuso. Para ello intenta lo siguiente. Define un constructor para la calculadora (no te olvides que debe ser público) y pon una traza indicando que has pasado por allí. Por ejemplo, prueba con algo similar a: public Calculadora() Console.WriteLine("Estoy en el constructor de la Calculadora"); Ahora, vuelve a comparar el funcionamiento entre la aplicación local y la aplicación distribuida. Obtenemos los mismos resultados?. En mi ejemplo, yo he obtenido con la aplicación local (comentando la línea de configuración) lo siguiente: 4 de 15
5 y con la aplicación en modo distribuida: Si has realizado los mismos pasos, podrás observar que en el servidor se llama al constructor de la calculadora TRES VECES!!. Una vez por cada cada llamada a los métodos. Pero lo más asombroso es que no hay NINGUNA llamada al constructor en el cliente. En cambio, el cliente hace un new Calculadora(), por lo que deberíamos esperar al menos una traza generada por el constructor. Para estar seguros, os propongo que definamos una variable estática que se incremente en el constructor. Ese valor lo podemos guardar como identificador de la calculadora. Imprime en la trazas del constructor y de los métodos ese identificador. Pregunta si 5 de 15
6 tienes dudas de como funciona una variable estática (también se denomina variable de clase). El código que os propongo sería similar a éste: public class Calculadora : System.MarshalByRefObject private static int contador = 0; private readonly int miid; private int dato = -1; public Calculadora() miid = contador++; Console.WriteLine("Estoy en el constructor de la Calculadora. Mi Id =" + miid); public void GuardarDato(int d) Console.WriteLine("Estoy GuardarDato. Mi Id =" + miid); dato = d; public int ObtenerDato() Console.WriteLine("Estoy ObtenerDato. Mi Id =" + miid); return dato; De nuevo, comparamos el funcionamiento tanto en local como en remoto. En local veremos algo de este estilo: 6 de 15
7 Efectivamente, cuando hemos ejecutado la aplicación en local, hemos visto que solo se construía una calculadora y que ese ID era el mismo para todas las llamadas. Ahora lo comprobamos en distribuido, y obtenemos algo similar a: En este caso, vemos que cada llamada se ejecuta en una calculadora diferente (se observan diferentes ID en las trazas). Ejecuta varios clientes y varias veces con un mismo servidor (sin pararlo). Intenta explicar el funcionamiento antes de continuar. 7 de 15
8 La razón de que cada llamada cree un objeto remoto se debe a que hemos dicho en nuestro fichero de configuración que el servicio era SingleCall. Compruébalo en el fichero de App.config del proyecto servidor. <wellknown mode="singlecall" type="calculo.calculadora, Calculo" objecturi="calculadora.remota" /> Este parámetro le indica al sistema que el objeto debe ser creado en cada llamada. El sistema destruye el objeto al terminar la llamada. Suele ser útil cuando no interesa mantener información entre llamadas. La alternativa sería Singleton que indica que todas las llamadas se refieren al mismo objeto. La vida del objeto (cuando se crea o hasta cuando existe) se define combinando varias características y ésta es una de ellas. Probad a cambiar el modo de activación y comprobad que las trazas se adaptan a ese nuevo modo. <wellknown mode="singleton" type="calculo.calculadora, Calculo" objecturi="calculadora.remota" /> Os adjunto de nuevo las trazas que he obtenido al cambiar la configuración por Singleton. Dado que esta configuración solo se aplica a la configuración del servidor, no tiene sentido volver a probar en modo local. 8 de 15
9 Ahora parece que nuestro funcionamiento es el esperado. Verdad? Realmente? O todavía tenemos alguna sorpresa más? Si volvemos a lanzar un cliente (sin parar el servidor) veremos que el nuevo cliente utiliza la misma calculadora que el cliente anterior! Si lanzamos varios clientes simultáneos, TODOS ellos están utilizando la misma calculadora. En una ejecución con cuatro clientes yo he obtenido lo siguiente: Quizás debamos reflexionar sobre lo que está sucediendo. Las cosas no parecen tan evidentes cómo creíamos. Lo que está sucediendo es que los objetos remotos toman vida de forma 9 de 15
10 independiente a la vida que se observa localmente. La vida de nuestro objeto local nace cuando hacíamos Calculadora calc = new Calculadora(); y moría cuando se cerraba su ámbito. En cambio el objeto remoto puede tener modos de vida muy diferentes. Y es muy común asociar estos modos de vida al estado que deseamos guardar en el servidor. Aunque en.net Remoting tengan los nombres de SingleCall o Singleton, en otros middleware pueden tener otros nombres. Por ejemplo en JavaEE aparecen los nombres Stateful y Stateless. Su significado es ligeramente diferente al que hemos visto, pero reflejan el mismo concepto de que los objetos remotos tienen vida propia. La totalidad de los middleware basados en objetos remotos tienen esta forma de trabajar. Algunos de ellos son muy elaborados, otros muy sencillos y la gran mayoría ofrecen alternativas para simular cualquier modo de vida que necesitemos. Lo más complejo de esta práctica es aceptar que los objetos remotos tienen una vida independiente del código del cliente. Es decir, los objetos remotos son construidos y destruidos por el servidor que los aloja, siguiendo diferentes políticas. Estas políticas definen cuándo un objeto debe ser construido, compartido y destruido. Y que este funcionamiento tan extraño tiene sentido. Mucho sentido!. Es un buen momento para que tu profesor os cuente conceptos de teoría. No avances en la práctica hasta asegurarte que has entendido correctamente los objetivos de la misma!!!!. Hemos visto que el concepto de modo de vida y dos alternativas de.net Remoting (singlecall y singleton). Este concepto es importante y para ello te ofrecemos algunos puntos de reflexión: Cuando hemos puesto trazas en el constructor, no se observan en la pantalla del cliente. Es eso posible? Lo más revelador de la práctica es que los objetos remotos tienen una vida diferente a los objetos locales. Pero la programación del cliente utiliza un objeto local de calculadora. Sabrías decir que problemas pueden surgir? En la práctica anterior, parece que el modo SingleCall es poco útil. Pero en realidad es bastante utilizado. Sabrías decir dónde?. Se te ocurren ventajas e inconvenientes de este modo? Igualmente, piensa sobre el modo Singleton. Razona sobre sus ventajas e inconvenientes. Intenta encontrar algún ejemplo en el que utilizarías uno u otro modo. Razona tu respuestas. Se te ocurren alternativas a los modos SingleCall y Singleton? Al cambiar los parámetros de configuración, solo hemos tocado el fichero de configuración del servidor. El cliente no ha sido modificado. Sabe el cliente qué modo de vida tiene el objeto calculadora? 10 de 15
11 Normalmente, los programadores de las aplicaciones cliente y los programadores del servidor suelen ser diferentes. El modo de vida lo han elegido los programadores del servidor. Cómo saben los clientes el modo de vida que tiene los objetos de un servidor? Podrían controlar los clientes el modo de vida de un objeto remoto?. Tiene sentido tal necesidad? 11 de 15
12 Ejercicios adicionales Como viene siendo habitual, vamos a vamos a realizar algunos cambios que nos ayuden a comprender otros conceptos relevantes. Nuestro objetivo ahora es explorar las consecuencias que nos implica el modo de vida y el impacto en el diseño del lenguaje. Os propongo los siguientes ejercicios adionales: 1. Seguramente os hayáis dado cuenta que nuestros antiguos métodos de sumar y multiplicar eran en realidad candidatos a métodos de clase ( static ). Es decir, no dependen del estado del objeto para ejecutarse. Si cambiamos esos métodos de instancia a métodos de clase (les ponemos static ), El funcionamiento de nuestro aplicativo cambiaría mucho? Se vería afectado por la declaración de un modo SingleCall o Singleton?. Antes de hacer los cambios os propongo que pensemos y analicemos lo que podríamos esperar. Ahora vamos a hacer los cambios. Os propongo el siguiente cambio: public static double Suma(double izq, double dch) Console.WriteLine("Estoy en la suma de doubles, sumando 0 + 1", izq, dch); return izq + dch; Si ahora ejecutamos nuestro cliente. Qué ha pasado? Dónde aparecen las trazas? Y si cambiamos el modo de vida? Hemos acertado en nuestras predicciones? 2. Retomemos nuestro código anterior en el que guardábamos e imprimíamos el número de ID de nuestro objeto. Os propongo algo de este estilo: public static double Suma(double izq, double dch) Console.WriteLine("Estoy en la suma de doubles, sumando 0 + 1", izq, dch); Console.WriteLine("Mi Id es =" + miid); return izq + dch; Nuestro código compilaría? Seguramente no podamos compilar este código. Sabríamos explicar la razón? Crees que tiene alguna relación con lo que nos ha sucedido en el ejercicio anterior? 3. Este comportamiento sucede solo con los métodos estáticos? Podría suceder algo parecido con los datos estáticos?. Una forma de comprobarlo es hacer métodos de instancia que modifiquen y retornen datos de clase. 12 de 15
13 Trabajad en grupo y proponer un método de comprobación. Cuando hayáis terminado, comentad con el profesor vuestras sugerencias y ponedlo en práctica. Cuando terminéis, comentad vuestros resultados con el resto de los asistentes. 13 de 15
14 Resumen A lo largo de esta práctica hemos aprendido que los objetos remotos tienen un modo de vida. Dado que el middleware hace tan trasparente la programación distribuida, si no entendemos ese concepto nuestro código puede ser propenso a errores. Hemos visto únicamente dos modos de vida, pero en la práctica nos encontraremos con algunos más. En la siguiente práctica vamos a explorar algunos más. 14 de 15
15 Conceptos introducidos En esta práctica hemos introducido/repasado los siguientes conceptos: Modo de vida de un objeto remoto Modo SingleCall Modo Singleton Miembros y métodos de clase y de instancia 15 de 15
Introducción. Curso de Middleware. Práctica 6. 1 de 9
Introducción Seguimos explorando aspectos del middleware y de la programación que resultarán relevantes a la hora de diseñar o construir middleware modernos. En esta práctica vamos a explorar el concepto
Más detallesIntroducción. Curso de Middleware. Práctica Truco de magia 1 de 9
Introducción En esta práctica vamos a hacer un truco de magia. En serio, también con la programación podemos hacer trucos de magia. Pero lo más interesante de nuestro truco de magia es que vamos a aprender
Más detallesProgramación orientada a objetos (I)
Programación orientada a objetos (I) Introducción a la POO La programación orientada a objetos es la penúltima evolución respecto a las metodologías de programación. En esta entrada veremos algunos de
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detallesREPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)
APRENDERAPROGRAMAR.COM REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I Fecha revisión: 2039 Resumen:
Más detallesLA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)
APRENDERAPROGRAMAR.COM LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesUnidad 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
Más detalles12. Tipos de atributos
Programación orientada a objetos con Java 135 12. Tipos de atributos Objetivos: a) Profundizar en el concepto de atributo de una clase e indicar los tipos de atributos en Java b) Interpretar el código
Más detallesClases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de decisión PRÁCTICA NÚM. [ 5 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Más detallesAbelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.
Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 00, Australia Autor principal del curso de 00 a 0 Iria Estévez Ayres Damaris Fuentes Lorenzo
Más detallesINTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)
APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java
Más detallesTEST DE RAZONAMIENTO NUMÉRICO. Consejos generales
TEST DE RAZONAMIENTO NUMÉRICO Consejos generales 1 I. INTRODUCCIÓN En lo relativo a los cálculos de porcentajes, es fundamental tener en cuenta que los porcentajes, en realidad, son referencias abstractas,
Más detallesDefinición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Más detallesDefinición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Más detallesJava desde Consola Utilizando Java sin Path
1 Utilizando Java sin Path Una vez hayamos instalado el JDK (Java Development Kit) ya estamos en capacidad de crear y hacer funcionar algunos códigos sencillos. Para esto utilizaremos como entorno de programación
Más detallesINTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)
APRENDERAPROGRAMAR.COM INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesIMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)
APRENDERAPROGRAMAR.COM IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero
Más detallesUnidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Más detallesConcurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
Más detalles10 -Herencia Y Polimorfismo. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
10 -Herencia Y Polimorfismo Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Herencia Si se supone que somos buenos programando, cuando creemos una clase es posible que sea
Más detallesTEMA 3:Programación con Clases y Objetos.
TEMA 3:Programación con Clases y Objetos. Objetivos: Explicar con claridad lo que es una clase como elemento fundamental de la Programación Orientada a Objetos y como se realiza la implementación de una
Más detallesINTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)
APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Más detallesALGORITMICA Y PROGRAMACION POR OBJETOS I
ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis
Más detallesHOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2009/2010 Nombre:... Fecha: / 11 / 2009 HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS Esta hoja de ejercicios
Más detallesCompartir discos y particiones
Materiales: Instalación del Cliente para Redes Microsoft y Compartir archivos e impresoras para redes Microsoft. Tiempo: 2 minutos Dificultad: Baja Descripción. Proceso que permite poner a disposición
Más detallesEXCEL Ejercicios paso a paso Excel Practica 02
EXCEL 2010 Ejercicios paso a paso Excel Practica 02 Referencias: Relativas. Operaciones basicas con celdas. Mi primera funcion. Suma. Trabajando en uns segunda hoja del mismo libro. Seleccionar rango,
Más detallesIntroducció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:
Más detallesClases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos
Más detallesAgenda. Guía en 5 pasos para el diseño orientado a objetos
Agenda Recapitulación del diseño orientado a objetos Atributo Static y método Static Diferencia entre array y vector Preparación del boletín de problemas nº 3 Analizar el problema 1 Explicar el problema
Más detallesProgramació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
Más detallesclass identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }
Programación Basada en Objetos Lectura 2 Clases en Java Definición class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) class Tiempo{
Más detallesEstructuras 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
Más detallesProgramación II Recursividad Dr. Mario Rossainz López
5. RECURSIVIDAD 5.1. Introducción La recursividad es una técnica en la que una función o método se hace llamadas a sí misma en el proceso de la realización de sus tareas. La recursividad da al programador
Más detallesUSO 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
Más detallesEstructura de un programa en Java
1 Estructura de un programa en Java Clases y Objetos Como lo hemos mencionado anteriormente Java es un programa orientado a objetos, lo cual quiere decir que se compone solamente de objetos. Un objeto
Más detallesCLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)
APRENDERAPROGRAMAR.COM CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Diseño orientado a objetos El diseño orientado a objetos surge de la idea de traspasar a los sistemas de software,
Más detalles! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesTema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL
Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,
Más detalles1. 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.
Más detallesExamen 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
Más detallesPOO. Por tanto, una clase nos permite crear varios objetos que pueden realizar la misma función o funciones diferentes.
CURSO DE PHP. POO. Antes de entrar en detalle sobre los conceptos establecidos en la programación orientada, tendremos que establecer conceptos básicos para el estudiante conozca la terminología de la
Más detallesProcesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Más detallesBloque II. Elementos del lenguaje de programación Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida
Más detallesASIGNACIÓN DE IGUALDAD EN JAVA. REFERENCIAS A OBJETOS. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD. (CU00663B)
APRENDERAPROGRAMAR.COM ASIGNACIÓN DE IGUALDAD EN JAVA. REFERENCIAS A OBJETOS. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD. (CU00663B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
Más detallesParte 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
Más detallesProgramación Orientada a Objetos
1 Clase: Programación Orientada a Objetos El elemento básico de la programación orientada a objetos en Java es la clase. Una clase define la forma y comportamiento de un objeto. Para crear una clase sólo
Más detallesCAPÍTULO 4 Mi primera diapositiva
CAPÍTULO 4 Mi primera diapositiva Crear una presentación sencilla Ahora que ya conocemos el entorno de trabajo, llega el momento de crear nuestra primera presentación. En esta presentación vamos a servirnos
Más detallesCIERRE CONTABLE. Primero comprobaremos que en Utilidades-Configuración esté el año contable que vamos a cerrar y realizaremos una copia de seguridad.
CIERRE CONTABLE Primero comprobaremos que en Utilidades-Configuración esté el año contable que vamos a cerrar y realizaremos una copia de seguridad. Realizaremos una Regeneración de Saldos en Utilidades-Apuntes-Regeneración
Más detallesLecció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
Más detallesTema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
Más detallesUnidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia
Más detallesINTRODUCCION A LA PROGRAMACION EN JAVA
Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Java 1 y 2 Diferencias entre Java1 y Java2 Mejoras en las interficies gráficas (Swing) Amplias mejoras en las librerías
Más detallesHerencia. public class Persona { private String nombre; private char sexo; public Persona() { nombre = new String(); sexo = ' '; }
Herencia Al definir una clase, se definen las características o variables y los métodos y conductas que pueden poseer todos los objetos que sean creados a partir de la clase. Sin embargo existen clases
Más detallesUNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN REPORTE DE INVESTIGACIÓN PROGRAMA FUNCIÓN FACTORIAL ALGORITMO PROGRAMA FUNCION FIBONACCI ALGORITMO
Más detallesUnidad Didáctica 5: Introducción a la Programación Orientada a Objetos
Unidad Didáctica 5: Introducción a la Programación Orientada a Objetos o Clases o Estructuras con funciones miembros. o Definición de una clase. o Constructores. o Tipos de constructores. o Sobrecarga
Más detallesUAA-DSE Programación 2 / C++ Eduardo Serna-Pérez
6 Herencia y Polimorfismo La Herencia y el Polimorfismo son dos de los principales mecanismos de programación que caracterizan a la programación orientada a objetos. La herencia sustenta su mecanismo en
Más detallesProgramación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Más detallesEjecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).
Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en
Más detallesLos Constructores(1)
Java: Definición de Clases y Objetos Presentación basada en: 1. Como Programar en Java. Deitel y Deitel. Ed. Prentice-Hall. 1988 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA,
Más detallesProgramación Orientada a Objetos. Orientación a Objetos en Java
Programación Orientada a Objetos Orientación a Objetos en Java Agenda Creación de Clases Tipo de datos Variables Operaciones aritméticas Objetos Objeto: entidad física o abstracta. Valores (datos): definen
Más detallesClase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Más detallesCursosindustriales. Curso de C / C++ Por Deimos_hack
MÓDULO 1. ESTRUCTURAS Y FUNCIONES. En los capítulos anteriores has visto como los arrays permiten almacenar diferentes datos, pero todos del mismo tipo de dato. En la práctica esto no compensa debido a
Más detallesMANUAL WinPoET 1/31. MANUAL WinPoET
1/31 MANUAL WinPoET Mayo 2006 1/31 INDICE 1. Introducción... 2 2. Windows 2000, 98 y ME - Instalación y configuración del WinPoET... 3 3. Windows XP Configuración de la conexión... 10 4. Windows XP - Comprobación
Más detallesProgramación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores
Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables
Más detallesAlgoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos
Algoritmos y Programación Orientada a Objetos I y uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Motivación En muchos
Más detallesArquitecturas 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?
Más detallesFACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4
Trabajo Práctico Nº 4 Ejercicios Teóricos 1. Indique si las siguientes afirmaciones son verdaderas o falsas a. La programación orientada a objetos hace uso de clases y envío de mensajes entre objetos..
Más detallesClase 3: Repaso POO. DSIW1:Ing. Tomás Eduardo Urbina 1
DSIW1:Ing. Tomás Eduardo Urbina 1 Declaración de una clase y creación de un objeto. La programación orientada a objetos se basa en la programación de clases; a diferencia de la programación estructurada,
Más detallesIDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA
Página1 PROGRAMA DE FORMACIÓN UNIDAD DE APRENDIZAJE ACTIVIDAD OBJETIVOS IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA OFIMATICA Y AUXILIAR DE SISTEMAS II-A ANIMACIÓN 2D INTERPOLACIÓN DE MOVIMIENTO, CLÁSICA
Más detallesTest : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Más detallesPROGRAMACIÓN EN JAVA
SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 2: Jerarquía de clases en Java Objetivos Implementar una jerarquía de clases para crear una aplicación en Java Comprender
Más detallesProf. Dr. Paul Bustamante
Nombre: Carné: Examen C++ - Junio Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Examen Junio Grupo A Programación en C++ Pág. 2 Examen Grupo A Programación en C++ Pág. 1 ÍNDICE ÍNDICE...
Más detallesExamen 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
Más detallesTema 2: Programación basada en Objetos
Tema 2: Programación basada en Objetos Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual Índice Objetivos Introducción Vista Pública Clases Objetos
Más detallesPruebas de escritorio
Pruebas de escritorio Es un proceso que consiste en hacer seguimiento a un algoritmo recorriendo sus líneas simulando el funcionamiento del procesador del computador. Ejemplo: Realizar un algoritmo que
Más detallesTRABAJO E.D: CONTROL DE VERSIONES GIT REALIZADO POR: ANTONIO MARTINEZ NAVARRO
TRABAJO E.D: CONTROL DE VERSIONES GIT REALIZADO POR: ANTONIO MARTINEZ NAVARRO CONTENIDO 1. INTRODUCCIÓN... 3 2. CREAR UN REPOSITORIO REMOTO EN GITLAB.... 3 3. EMPEZAR A USAR GIT BASH DENTRO DE NUESTRO
Más detallesEstructura 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
Más detallesDeclaración de una clase
Uso de Clases Declaración de una clase Es recomendable crear un archivo de texto en donde declararemos una clase por cada objeto identificado en nuestro problema, aunque es posible declarar varios objetos
Más detallesConceptos 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
Más detallesHOJA 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á
Más detallesCOMO CREAR UNA RED LOCAL ENTRE EQUIPOS CON WINDOWS
COMO CREAR UNA RED LOCAL ENTRE EQUIPOS CON WINDOWS XP Y VISTA: Explicación con direcciones estáticas y dinámicas. 1. RED CON DIRECCIONES DINAMICAS: La primera explicación la realizaré para XP. Lo primero
Más detallesOpenOffice Writer I. PROCESADOR de TEXTOS
OpenOffice Writer I PROCESADOR de TEXTOS Índice del curso 1. Qué es OpenOffice writer... 3 Introducción... 3 Descripción del entorno de trabajo de OpenOffice Writer... 3 2. Primeros pasos... 4 Crear un
Más detallesPRESENTACIONES CON IMPRESS INTRODUCCIÓN 1. CREAR UNA PRESENTACIÓN CON IMPRESS
PRESENTACIONES CON IMPRESS INTRODUCCIÓN Impress es un programa que forma parte del conjunto de aplicaciones OpenOffice. Este programa nos permite crear presentaciones para realizar exposiciones, impartir
Más detallesContenido. Página 2 de 10
RÚBRICA Contenido INTRODUCCIÓN... 3 CONFIGURACIÓN Y GESTIÓN DE UNA RÚBRICA... 3 Definir un nuevo formulario de calificación desde cero, para crear un nuevo formulario desde cero... 4 Crear un nuevo formulario
Más detallesEstructuras. //identificador del cliente
Estructuras 1 Objetivos Al finalizar esta actividad, serás capaz de: 1. Escribir la declaración de una estructura de datos convenientemente especificada 2. Escribir el código necesario para acceder a un
Más detalles07 Variables. 7.1 Variables globales Definición
07 Variables 07 Variables 7.1 Variables globales 7.1.1. Definición Las variables se utilizan para almacenar datos individuales en disco o en memoria. Son datos globales a la aplicación y comunes, en el
Más detallesEjercicio de Microsoft Access
Práctica 3. Establecer relaciones entre tablas y experimentar con la integridad referencial. 1) Abrir la ventana de Relaciones. 2) Agregar las tablas CLIENTES, ARTICULOS, PEDIDOS y zonas para crear las
Más detallesFUNDAMENTOS 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
Más detallesCURSO : 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.
Más detallesFormato para prácticas de laboratorio
Fecha de efectividad: 2011-1 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE
Más detallesObjetivos. El alumno empleará el concepto de excepción en la programación orientada a objetos para el manejo de errores de ejecución.
Universidad Nacional Autónoma de México Facultad de Ingeniería PRACTICA 10 PROGRAMACIÓN ORIENTADA A OBJETOS (MANEJO DE EXCEPCIONES) Objetivos El alumno empleará el concepto de excepción en la programación
Más detallesADICION Y MULTIPLICACION
1 Puntos Explosivos CAPITULO 3 ADICION Y MULTIPLICACION A la sociedad le encanta trabajar en base diez. Por tanto quedémonos por un rato con la máquina1 10 y démosle sentido a la aritmética que aprendemos
Más detallesOpenOffice Calc Básico HOJAS de CALCULO
HOJAS de CALCULO El curso OpenOffice Calc I creado por KZgunea se encuentra bajo licencia Creative Commons de Atribución-NoComercial- CompartirIgual_3.0_ (CC-BY-NC-SA_3.0) Índice del curso 1. Qué es OpenOffice
Más detallesun conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:
CAPÍTULO 2: ESPACIOS VECTORIALES 2.1- Definición y propiedades. 2.1.1-Definición: espacio vectorial. Sea un cuerpo conmutativo a cuyos elementos denominaremos escalares o números. No es necesario preocuparse
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java En nuestro post de hoy vamos a tratar el tema la programación orientada a objetos en Java, no todo va a ser.net! En si la POO es bastante amplia y muy necesario
Más detallesConceptos Básicos. Programación Orientada a Objetos 2
Programación Orientada a Objetos Conceptos Básicos de Objetos Ing. Julio Ernesto Carreño Vargas MsC. Conceptos Básicos Las aproximaciones ADOO y POO, proveen a los objetos como el principal medio para
Más detalles