Publicado el 3 de Octubre del 2018
487 visualizaciones desde el 3 de Octubre del 2018
901,0 KB
74 paginas
Creado hace 8a (08/08/2015)
Unidad I. Lenguaje de
Programación Orientado a
Objetos.
Contenido
1. Implementación de Estructuras de Datos
2.
3.
Implementación de clases
Implementación de asociaciones y
dependencia
4.
Implementación de Herencia y Polimorfismo
Estructuras de datos clásicas
Estructuras de Datos
Estructuras de Datos
Estructuras de Datos
Estructuras de Datos
- - Son variables que pueden contener muchos datos en lugar
de un solo dato. A cada dato se le llama elemento.
- - Ejemplo : un arreglo.
- - Están en memoria(los archivos y las tablas de Bd’s están en
disco).
Estructuras de datos clásicas
Estructuras de Datos
Estructuras de Datos
Estructuras de Datos
Estructuras de Datos
Hay tres tipos de estructuras de datos clásicas en java:
a. Los arreglos.
b. Colección: implementan la interfaz collection; entre ellas la
interfaz Set y la interfaz List.
c. Mapas: implementan la interfaz map.
Interfaz Collection
Colecciones
Colecciones
Colecciones
Colecciones
a.
Interfaz que cumple las estructuras clásicas de datos de
estilo colección.
b. Algunas clases que la implementan: Vector, Hashtable,
LinkedList, ArrayList; entre otros.
c.
Permite tratar todas estas clases de la misma forma.
Interfaz Collection
(estructura Jerárquica)
Colecciones
Colecciones
Colecciones
Colecciones
Métodos de Interfaz Collection
Colecciones
Colecciones
Colecciones
Colecciones
La variable ‘o’ es de tipo objeto:
a.
b.
c.
d.
e.
f.
add(o) : añade objeto a la colección.
remove(o): elimina objeto de la colección.
contains(o): devuelve true si el objeto esta en la colección.
isEmpty() : true si la colección esta vacía.
size(): retorna el número de elementos de la colección,
toArray(): retorna un array de objetos, con todos los
objetos de la colección,
Tips Collection
Colecciones
Colecciones
Colecciones
Colecciones
a. Todos los métodos sirven para poner elementos en la
colección.
b. Para consultar elementos de una colección se utiliza la
c.
interfaz Iterator.
El método iterator() devuelve una interfaz para recorrer
los elementos de una colección.
Interfaz Iterator
Colecciones
Colecciones
Colecciones
Colecciones
a.
Se encuentra en el paquete java.util
b. Recorre secuencialmente los elementos de una colección.
Sus métodos de instancia son:
- hasNext(): true si hay un elementos siguiente al actual.
- next(): devuelve el siguiente elemento. Lanza un
NoSuchElement Exception sino se encuentra este
elemento.
Interfaz iterator
Colecciones
Colecciones
Colecciones
Colecciones
El siguiente código imprime los elementos de una colección:
Iterator ite = colección.iterator();
while(ite.hastNext()){
System.out.println(ite.next());
}
Donde ‘colección’ es un objeto que implementa la interfaz
Collection(Ejem: podria ser un ArrayList entre otros).
Bucle for-each
Colecciones
Colecciones
Colecciones
Colecciones
Utilizar y recorrer colecciones con iterator puede parecer un
tanto complicado. Desde java 5 aparece el for-each.
a.
Sirve para recorrer los elementos de :
- Colecciones.
- Arreglos.
b. Es útil cuando:
-Se quiere recorrer todos los elementos.
- No nos importa el valor del índice.
Sintaxis Bucle for-each
Colecciones
Colecciones
Colecciones
Colecciones
for (tipo variable: estructura){
//código
}
int suma = 0;
List<Integer> arreglo= new ArrayList<Integer>();
…..
for(int elemento:arreglo){
suma += elemento;
}
pro1.java
La interfaz Set
Colecciones
Colecciones
Colecciones
Colecciones
- Hereda de la interfaz Collection.
- Por ello tiene todos los métodos de Collection.
- Con el método add, si tratamos de adicionar dos elementos
iguales solo guardara uno.
- Se usa en colecciones sin valores repetidos.
La interfaz Set
Colecciones
Colecciones
Colecciones
Colecciones
- Pero sigue siendo una interfaz.
- Las interfaces no se pueden instanciar con new.
- ¿Cómo la instanciamos?
La interfaz Set
Colecciones
Colecciones
Colecciones
Colecciones
- El new se hace con las clases.
- Pero se guarda en una variable Set.
- Se manipula con los métodos de la interfaz Set
Set <Libreta> conjunto = new TreeSet<Libreta>
Donde Libreta es una clase(tipo de dato) con sus atributos y
métodos propios.
- Es decir TreeSet solo aparece en el new, en todo lo demás se
maneja con Set. TreeSet es una clase que implementa la interfaz
Set. <Libreta>, le decimos al compilador que el objeto conjunto
es un Set del tipo Libreta actuando como TreeSet.
La interfaz Set y Collection
Colecciones
Colecciones
Colecciones
Colecciones
- Son excelentes para recorridos secuenciales de los datos
- Para llegar de un elemento a otro hay que pasar por todos
los demás elementos.
- Pero a veces se necesita acceso directo, sin pasar por los
elementos anteriores.
La interfaz List
Colecciones
Colecciones
Colecciones
Colecciones
- Se accede a un elemento directamente.
- Añade un nuevo método get(p) donde p es la posición del
elemento que queremos encontrar.
- Como es collection devuelve un objeto.
La interfaz List
Colecciones
Colecciones
Colecciones
Colecciones
Métodos:
isEmpty() : si la lista esta vacia.
size(): número de elementos de la lista.
- La interfaz List pertenece a java.util
- isEmpty() y size() provienen de la interfaz Collection.
La interfaz List
Colecciones
Colecciones
Colecciones
Colecciones
- Como la lista es una estructura de datos del tipo Collection,
puede utilizar perfectamente el bucle for – each.
- List es una interfaz por lo que no podemos utilizar new.
- Podemos digitar: List empleados;
- La interfaces entonces nos devuelven un objeto que no
sabemos de que tipo es, pero si podemos utilizarlo(potencia de
las interfaces: Puede ser un objeto ArrayList o LinkedList)
La interfaz List
Colecciones
Colecciones
Colecciones
Colecciones
- A veces queremos crear objetos de la interfaz List.
- Se debe utilizar las clases que implementan la interfaz List:
a. ArrayList: la lista se guarda en un arreglo.
- Rápido para consultas.
- Tiempo aceptable para inserciones.
b. LinkedList: se implementa con punteros.
- Rápido en inserciones al final de la lista.
- Un tanto lento en consultas.
La interfaz List
Colecciones
Colecciones
Colecciones
Colecciones
- En la mayoría de casos es mejor ArrayList.
- El new se hace con las clases.
- List list = new ArrayList();
Caracteristicas de interface List
Colecciones
Colecciones
Colecciones
Colecciones
- ¿Qué especificamos?
a. El tipo de colección.
b. El tipo de objeto que contendrá.
-
Incrementan su capacidad en demanda.
- Guarda los elementos en orden.
Caracteristicas de interface List
Colecciones
Colecciones
Colecciones
Colecciones
- Se basan en la gestión interna del almacenamiento y
recuperación de elementos.
- Prácticamente son contenedores de elementos.
- Son estructuras más complejas que los arrays ya que además
de tener interfaces para la agregación, extracción; adiciona
además la búsqueda, inserción y borrado.
Caracteristicas de interface List
Colecciones
Colecciones
Colecciones
Colecciones
- Los tipos de objetos que almacenan deben de estar
relacionados a los objetos envoltura.
- Tienen una serie de interfaces y clases para trabajar de forma
abstracta con ellas.
- Algunas colecciones aceptan duplicados y otras no.
Ejemplos implementación de List con clase
ArrayList
Colecciones
Colecciones
Colecciones
Colecciones
import java.util.*;
public class Programa {
public static void main(String arg[]) {
int temp = 0;
List<Integer> lp = new ArrayList<Integer>();
// El tipo es List y lo implementamos con ArrayList
// Utilizamos lista genérica…le decimos que contendrá objetos Integer
int sumaaltura = 0;
//llenamos la lista
for(int i=0;i<5;i++) {
lp.add(i); //el compilador convierte el int en Integer
}
Ejemplos implementación de List con clase
ArrayList
Colecciones
Colecciones
Colecciones
Colecciones
//Creamos objeto iterador para recorrer la lista
Iterator it = lp.iterator();
while(it.hasNext()) {
temp = (int) it.next(); //devuelve obj genérico, hay que pasarlo a int.
System.out.println(temp);
sumaaltura += temp;
} //fin while
System.out.println(sumaaltura);
} //fin main
} //fin clase
Ejemplos implementación de List con clase
ArrayList
Colecciones
Colecciones
Colecciones
Colecciones
En donde:
- El tipo es List y lo implementamos con ArrayList
- List es una subinterface de la interfaz Collecction y ArrayList
es la clase que implementa a List.
- El objeto lp es del tipo List actuando como un ArrayList.
Contenido
1.
Implementación de Estructuras de Datos
2. Implementación de clases
3. Implementación de asociaciones y
dependencia
4.
Implementación de Herencia y Polimorfismo
Implementación de Clases
• Las clases son tipos de dato definidos por el
Empleado,
ejemplo Alumno,
usuario
Materia, Auto, etc.).
(por
• Los objetos son las variables de instancia de las
clases.
• Al escribir una aplicación en un lenguaje de
programación orientado a objetos, se escribe el
código para las clases; y además, se agrega el
código para la clase de la aplicación (que
contiene el método main).
29
Implementación de Clases
• Las clases se almacena en archivos con el nombre de la
clase, por ejemplo “Alumno.java” .
• Todas las aplicaciones en Java, inician su ejecución en el
método main, y finalizan en el mismo método.
• El método main, entonces, se encarga de instanciar
objetos de las clases definidas por el usuario; dichos
objetos inician la invocación de métodos de un objeto a
otro; y de esa forma, se ejecuta un programa orientado a
objetos.
30
Implementación de Clases
• La forma de escribir clases es procurando la flexibilidad y facilidad
de mantenimiento.
• Cuando un programador establece variables de instancia locales
(public), no se puede validar los valores asignados, por ejemplo:
//Archivo Caja.java
public class Caja {
public int tamaño;
public int peso;
….
}
//Archivo PruebaCaja.java
Comentarios de: Unidad 1. Lenguaje de Programación Orientado a Objetos (0)
No hay comentarios