El lenguaje de programación Java

Slides:



Advertisements
Presentaciones similares
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Advertisements

FACHADA COMPOSITOR MEMENTO
Lenguaje Unificado de Modelado
Curso de Java Capitulo 7: Continuación Poo Profesor:
POLIMORFISMO UNIDAD 4.
Lenguaje de programación Java
UML para programadores Java
Herencia simple y multiple
Arquitectura CLARO-TECNOTREE
Programación Orientada a Objetos
Etapas y actividades en el desarrollo OO basado en UML
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Figure: Lenguajes. Generaciones de lenguajes de programación.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Introducción a la programación Orientada a objetos
Tema 10: Interfaces Antonio J. Sierra.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Patrones de Comportamiento: Patrón de Diseño Observer
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Patrones GRASP.
Patrones de diseño DECORATOR Mario Rodríguez Martín
Programación Orientada Objetos
Patrones para asignar responsabilidades
CS-432: Ingeniería Moderna de Software Semana 3
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Aplicaciones Web de Servidor
Programación de Interfaces Gráficas en Java
Programación Gráfica Agustín J. González ELO329/ELO330.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Tratamiento de excepciones
Programación de Interfaces Gráficas en Java
UML.
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Acceso a Datos Erick López Ovando Licenciado en Informática.
Proliferación Celular LUIS FELIPE JIMENEZ CAICEDO ANDRES FELIPE VASQUEZ JHON ANDERSON YANGUAS JUAN DAVID PINTO PAOLA ANGELICA GIRÓN ISIS VICTORIA PIZO.
Clases “ Es una Abstracción de un elemento del mundo real ”
Diagrama de Clases.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Fundamentos de Ingeniería de Software
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Modelado UML Diagrama de Clases
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Tema 1: Concurrencia con Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

El lenguaje de programación Java clase Graphics cargar una imagen desde fichero dibujar líneas en el panel de dibujo modo XOR Diseño de aplicaciones Modelo MVC (Modelo-Vista-Control) El lenguaje de programación Java

Cargar una imagen en una aplicación Utilizamos un objeto Toolkit para leer ficheros GIF y JPEG Ejemplo: Toolkit kit = Toolkit.getDefaultToolkit(); Image foto = kit.getImage(“fotos/dni.jpeg”); La variable foto contiene una referencia a un objeto que encapsula la imagen JPEG. Para visualizarla en una zona gráfica (objeto de tipo Graphics) se utiliza el método drawImage: Graphics g = jPanelDibujo.getGraphics(); g.drawImage(foto, x, y, null); //ImageObserver = null //también puede dibujarse a escala g.drawImage(foto, x, y, ancho, alto, null); El lenguaje de programación Java

El lenguaje de programación Java clase MediaTracker Se necesita para cargar completamente una imagen antes de procesar cualquier otro código. El código necesario es: Toolkit kit = Toolkit.getDefaultToolkit(); Image foto = kit.getImage(“fotos/dni.jpeg”); MediaTracker tracker = new MediaTracker(this); tracker.addImage(foto, 0); //0 = identificador try{ tracker.waitForID(0); //o bien tracker.waitForAll(); }catch (InterruptedException e){} El lenguaje de programación Java

Primitivas de dibujo en Graphics Ejemplos: void drawLine(x1, y1, x2, y2) Dibuja una línea desde el punto (x1,y1) del área de dibujo al punto (x2, y2) void drawRect (x, y, ancho, alto) Dibuja un rectángulo situando la esquina superior izquierda en el punto (x, y). Los lados miden x+alto y x+ancho. El lenguaje de programación Java

Borrar imágenes. Modo XOR En la clase Graphics: public void setXORMode(Color c1) Dibujar dos veces la misma imagen implica que se restauren los pixels al color original. Ejemplo: Graphics g = jPanel.getGraphisc(); g.setXORMode(Color.white); 1) Pintar dos veces la misma imagen en este panel supone que el panel se ponga de color blanco (el color original). El efecto es que se borra la imagen de la pantalla. 2) Se puede pintar una imagen encima de otra. El lenguaje de programación Java

El lenguaje de programación Java Dibujar en un panel Se necesita: Definir una clase que herede de JPanel. redefinir el método paintComponet, este método se llama automáticamente siempre que sea necesario redibujarse. class VisualizadorPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); …//Código necesario para dibujar } El lenguaje de programación Java

Desarrollo de aplicaciones OO 1) Análisis del problema  MODELO de la aplicación 1.1 Encontrar los objetos relevantes del dominio Ej: Libro,Autor, .. 1.2 Describir los objetos encontrados y clasificar a) atributos y operaciones; relaciones clientela Ej: autor-libro b) herencia Ej: Revista - Publicación 1.3 Implementar las clases en un lenguaje 2) Diseño de la solución: surgen nuevos objetos no relacionados con el dominio 2.1 Diseño de la interfaz de usuario (VISTA) 2.2 Establecer el CONTROL: interacción del usuario con la vista 2.3 Implementar las clases del diseño El lenguaje de programación Java

Desarrollo de aplicaciones en Java Implementar las clases del MODELO. Definir el aspecto gráfico (VISTA) Definir los eventos que van a ocurrir sobre cada uno de los elementos de las ventanas = eventos del sistema. eventos generados por un actor externo Implementar las acciones asociadas a la ocurrencia de un evento sobre los botones de la vista (CONTROL). ¿Quién debe ser el responsable de gestionar los eventos del sistema? El lenguaje de programación Java

El lenguaje de programación Java Ejemplo. Sea el modelo: Agenda añadir eliminar buscar iterator Contacto nombre:String telefono:String * La agenda es un catálogo de contactos: public class Agenda{ private LinkedList contactos; … } El lenguaje de programación Java

Coordina la solicitud desde la UI Puede ser una clase que represente presiona botón actionPerformed(ActionEvent) Capa de Interfaz :JFrameAgenda nuevoContacto(nombre, tfno) Coordina la solicitud desde la UI Puede ser una clase que represente al sistema software completo Capa del Dominio :Controlador :???

El lenguaje de programación Java Beneficios del Controlador: Reutilización de la lógica de la aplicación en futuras aplicaciones porque no está ligada a la capa de interfaz. actionPerformed(ActionEvent) actionPerformed(ActionEvent) Capa de Interfaz :JFrameAgenda :JDialogAlta nuevoContacto(nombre,tfno) Capa del Dominio :Controlador El lenguaje de programación Java

Modelo de delegación de eventos Debemos definir los cambios del modelo que van a implicar que reaccione la interfaz gráfica. interface AgendaListener{ void alta (Contacto c); void baja (Contacto c); } Las GUI que necesiten estar pendientes de estos cambios: Implementarán el interfaz que especifica los eventos que va a notificar el modelo. public class GUIAgenda extends JFrame implements AgendaListener Se deben registrar en el controlador como oyentes del modelo. controlador.addAgendaListener(this); El lenguaje de programación Java

Modelo de delegación de eventos El controlador notificará a sus oyentes cuando se produce un cambio en el modelo: public void nuevoContacto(String nombre, String tfno) { Contacto c = new Contacto(nombre, tfno); //Actualizar el modelo agenda.añadir(c); //Informar a los oyentes del modelo //que se ha dado de alta un nuevo contacto Iterator it = oyentesModelo.iterator(); while (it.hasNext()) ( (AgendaListener) it.next()).alta(c); } La GUI se modificará en consecuencia El lenguaje de programación Java

El lenguaje de programación Java Principios de diseño Experto en Información: Los objetos hacen las cosas relacionadas con la información que tienen. Creador: Asignar a la clase B la responsabilidad de crear una instancia de clase A si se cumple uno o más de los siguientes casos: B agrega objetos de A B contiene objetos de A B registra instancias de objetos de A B utiliza estrechamente objetos de A B tiene los datos de inicialización para la creación de los objetos de A Bajo Acoplamiento: pocas interfaces. Alta Cohesión: responsabilidades altamente relacionadas. El lenguaje de programación Java

El lenguaje de programación Java Algunas heurísticas Una clase representa una única abstracción bien definida. Cuidado con clases que tienen nombres operacionales (“Mi clase hace …”) son el resultado de convertir una rutina en una clase. Los atributos no son públicos. Métodos pequeños. Distribuir la funcionalidad horizontalmente. Cuidado con clases con muchos métodos set/get. Las clases del modelo deben ser independientes de las clases de la vista. Incluir clases controladores para coordinar la actividad, no incluir código del modelo en la vista. El lenguaje de programación Java

El lenguaje de programación Java Algunas heurísticas Factorizar comportamiento común lo más arriba que se pueda en la jerarquía de herencia. Crear tantas clases abstractas como sea posible. La clase raíz de una jerarquía de clases debería ser abstracta. Distribuir la funcionalidad horizontalmente. Favorecer jerarquías profundas. Minimizar colaboraciones. Composición antes que herencia de implementación. Cuidado con el uso de estructuras CASE. El lenguaje de programación Java

El lenguaje de programación Java Algunas heurísitcas Utilizar excepciones sólo para condiciones excepcionales. //NO HACER NUNCA ESTO try{ int i=0; while (true) a[i++].f(); }catch (ArrayIndexOutOfBoundsException e){} Utilice excepciones comprobadas para condiciones recuperables y excepciones runtime para errores de programación. El lenguaje de programación Java

El lenguaje de programación Java Algunas heurísticas Favorezca el uso de excepciones predefinidas: IllegalArgumentException NullPointerException IndexOutOfBoundsException NoSuchElementException UnsupportedOperationException Lance excepciones apropiadas al nivel de abstracción. Documentar todas las excepciones lanzadas por cada método (etiqueta @throws del javadoc) El lenguaje de programación Java