La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Colección.

Presentaciones similares


Presentación del tema: "0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Colección."— Transcripción de la presentación:

1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Colección ordenada generica Dr. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 2015

2 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA ColeccionOrdenada TipoElemento [] T cantElementos: entero > ColeccionOrdenada(max: entero) > insertar(unElem: TipoElemento) eliminar(unElem: TipoElemento) > cantElementos(): entero hayElementos(): boolean estaLlena(): boolean existeElemento(unElem: TipoElemento) : boolean

3 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA class ColeccionOrdenada{ protected TipoElemento[] T; protected int cantElementos; //Constructor public ColeccionOrdenada(int max){ T = new TipoElemento [max]; cantElementos = 0; } … } Introducción a la Programación Orientada a Objetos IPOO - 2015 3

4 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA //Comandos public void insertar(TipoElemento elem) { /*Inserta un elemento ordenadamente. Asume que la colección no está llena y que el elemento no existe*/ int i = 0; boolean mayor = false; while (i < cantElementos() && !mayor){ if (T[i].mayor(elem)) mayor = true; else i++; } if (mayor) arrastrarFinal(i); T[i] = elem; cantElementos ++; } 4

5 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA //Comandos public void eliminar(TipoElemento elem){ //… int i = 0; boolean salir = false; while (i < cantElementos() && !salir){ if (T[i].mayor(elem)||T[i].equals(elem)) salir = true; else i++; } if (salir && T[i].equals(elem)) { arrastrarPpio(i); cantElementos --;} } 5 Observar que la expresión no es conmutativa.

6 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA ColeccionOrdenada *TipoElemento *equals(e:TipoElemento) *mayor(e:TipoElemento) abstract class TipoElemento{ abstract public boolean equals(TipoElemento e); abstract public boolean mayor(TipoElemento e); }

7 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 GENERICIDAD La clase ColeccionOrdenada es una clase genérica que brinda servicios para actualizar y recorrer una estructura de elementos homogéneos ordenados. Usamos un arreglo para representar internamente la estructura. La clase ColeccionOrdenada puede extenderse con clases especializadas que brinden servicios más específicos. Las operaciones generales pueden implementarse de manera independiente del tipo de las componentes, solo se requiere que tengan un atributo clave. Las operaciones específicas dependen del tipo de las componentes. Como el arreglo está encapsulado en ColeccionOrdenada las clases especializadas acceden a través de las operaciones. Introducción a la Programación Orientada a Objetos IPOO - 2015 7

8 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA //Consultas public boolean existeElemento(TipoElemento elem){ int i = 0; boolean esta = false; while (i < cantElementos() && elem.mayor(T[i]) && !esta){ esta = elem.equals(T[i]); i++; } return esta ; } 8 La búsqueda se interrumpe cuando se encuentra o cuando ya se sabe que no se va a encontrar.

9 ColeccionOrdenada Insertar(e: TipoElemento) *TipoElemento *equals(e:TipoElemento) *mayor(e:TipoElemento) CorreoColCiudades Mensaje equals(e:TipoElemento) mayor(e:TipoElemento) Ciudad equals(e:TipoElemento) mayor(e:TipoElemento)

10 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA Mesaje > … > … > equals(TipoElemento m): boolean mayor(TipoElemento m): boolean En los objetos de clase Correo solo se van a insertar objetos de clase Mensaje.

11 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 COLECCIÓN ORDENADA GENERICA Ciudad > … > … > equals(TipoElemento m): boolean mayor(TipoElemento m): boolean En los objetos de clase ColCiudades solo se van a insertar objetos de clase Ciudad.


Descargar ppt "0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Colección."

Presentaciones similares


Anuncios Google