1 Ingeniería del Software Colecciones de objetos  Descripción general  Patrón iterador  Iteradores en Java: enumeration  Patrón diccionario  Diccionarios.

Slides:



Advertisements
Presentaciones similares
UML DCU -DS Alvaro Garrido V..
Advertisements

Defina una clase TempMinEstacion que encapsule la representación de las temperaturas mínimas registradas en una estación meteorológica en un período y.
Tipos de Datos Abstractos Vector de Racionales
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
El proceso de desarrollo de software
Lección 1 Introducción a la POO
Tema 1. Introducción a la programación (Lenguaje java).
1.2 Sintaxis del lenguaje Java.
Encapsulamiento y Abstracción
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.
Algoritmo y Estructura de Datos I
Marzo 2007 Lenguajes Visuales Clase III.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Arreglos: Vectores en JAVA
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
POO Java Módulo 3 Elementos de programas Identificadores
0. Desarrollo de Programas: técnica del refinamiento.
Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la fase de análisis. Dependen de: Modelo Conceptual Diagrama.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Técnicas avanzadas de programación Interfaces
JAVA J.A.C..
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Estructuras de control Introducción a la programación.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
ESTRUCTURA DE DATOS EN JAVA
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Resumen Fundamentos de Programación/ Programación I
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Clases.
María Eugenia Valencia Dpto. Ciencias de la Computación FASE DE CONSTRUCCION Mapeo de los diseños para codificación Definiciones de clase a partir de los.
Ingeniería del Software
PATRONES DE INDIRECCION Y VARIANTES PROTEGIDAS
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
Arreglos Bidimensionales Arreglos Multidimensionales.
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
Arreglos de Objetos.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
Metodología de Programación Clase 1 Leonel Lagos V
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
Prof. Víctor Aquino Urrutia
Algoritmos y Programación III 4. Colecciones, excepciones Carlos Fontela, 2006.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
Elementos básicos.  Fuertemente tipeado.  Sintaxis similar a C/C++.  Sin punteros: garbage collection.  Portable.  Integra librerías para objetos.
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Tratamientos Secuenciales Generalizados II Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 19 Versión
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.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Implementación de Iterables Construcción de Iterables virtuales o basados en otros iterables Fundamentos de Programación Departamento de Lenguajes y Sistemas.
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Iterables virtuales Concepto, Metodología de desarrollo y Ejemplos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada TIPOS ABSTRACTOS DE DATOS TAD Tema: TIPOS ABSTRACTOS DE DATOS TAD Subtema: LISTAS.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
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.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Transcripción de la presentación:

1 Ingeniería del Software Colecciones de objetos  Descripción general  Patrón iterador  Iteradores en Java: enumeration  Patrón diccionario  Diccionarios en Java: hash

2 Ingeniería del Software Colecciones de objetos  Contexto:  Necesidad de acceder individualmente a objetos de una colección  Problema:  Se quiere acceder secuencialmente a todos los objetos de una colección  Solución:  Quitar la responsabilidad del acceso y recorrido del objeto agregado y asignarla a una nueva clase de objetos que llamaremos iterador  Beneficios  Uniformizar el acceso

3 Ingeniería del Software Patrón Iterador Venta fecha: fecha hora: hora consta 1..* referencia LineaVenta cantidad: entero Producto cp: código descripción: texto precio: real * Agrega muchos objetos LineaVenta

4 Ingeniería del Software Diagrama de secuencia: TerminarVenta  Representación de alto nivel, independiente del lenguaje :TPV terminarVenta() :Venta terminar() importe total() :LineaVenta:Producto subtotal() precio() *

5 Ingeniería del Software Código Java TerminarVenta: TPV package TPV; import java.util.*; class TPV { private Catalogo catalogo; private Venta venta;... public float terminarVenta () { venta.terminar(); return (float) venta.total(); }

6 Ingeniería del Software Código Java TerminarVenta: Venta package TPV; import java.util.*; class Venta { private Vector lineaVenta = new Vector(); private Date fecha = new Date(); private boolean estaTerminada = false; private float totalVenta = 0;... public void terminar () { estaTerminada = true; } public float total() { float total = 0; enumeration e = lineaVenta.elements(); while (e.hasMoreElements()) { total += ( (LineaVenta) e.nextElement() ).subtotal(); } totalVenta = total; return total; }

7 Ingeniería del Software Patrón diccionario Venta fecha: fecha hora: hora consta 1..* referencia LineaVenta cantidad: entero Producto cp: código descripción: texto precio: real * Una LineaVenta referencia un solo producto

8 Ingeniería del Software Diagrama de secuencia: AñadirProducto :TPV añadirProducto(cp, c) :Venta agregarLV(p, c) :LineaVenta crear(p, c) :Catálogo producto(cp) :Producto obtener(cp) p

9 Ingeniería del Software Código Java AñadirProducto: TPV package TPV; import java.util.*; class TPV { private Catalogo catalogo; private Venta venta;... public void añadirProducto (int cp, int cantidad) { Producto p = catalogo.producto(cp); venta.agregarLV(p, cantidad); }

10 Ingeniería del Software Código Java AñadirProducto: Catalogo package TPV; import java.util.*; public class Catalogo { private Hashtable DProducto = new Hashtable(); public Catalogo() { catalogo c = new producto(100, 2, “producto 100”); catalogo.put(new Integer(100), c); catalogo c = new producto(200, 1, “producto 200”); catalogo.put(new Integer(200), c); } public producto producto (int cp) { return (producto) catalogo.get(new Integer (cp)); }

11 Ingeniería del Software Código Java AñadirProducto: Producto package TPV; public class Producto { private int cp = 0; private float precio = 0; private String descripcion = “”; public producto (int cp, float precio, String descripcion) { this.cp = cp; this.precio = precio; this.descripcion = descripcion; }... }

12 Ingeniería del Software Código Java AñadirProducto: Venta package TPV; import java.util.*; class Venta { private Vector lineaVenta = new Vector(); private Date fecha = new Date(); private boolean estaTerminada = false; private float totalVenta = 0;... public void agregarLV (producto p, int cantidad){ lineaVenta.addElement(new LineaVenta(p,cantidad)); }

13 Ingeniería del Software Código Java AñadirProducto: LineaVenta package TPV; class LineaVenta { private int cantidad; private Producto producto;... public LineaVenta (producto p, int cantidad) { this.producto = p; this.cantidad = cantidad; }