Sei sulla pagina 1di 10

Universidad de El Salvador

Facultad de Ingeniería y Arquitectura


Escuela de Ingeniería de Sistemas Informáticos
Programación III

Guía No.1 De LABORATORIO


Ciclo IV-2018
. SEMANA 1 Lenguaje de Programación Orientado a Objetos
Implementación de Estructuras de Datos y de Clases

Introducción
En esta guía tenemos tres actividades básicas:
 Conocimientos generales en base a clase teórica de la semana 1.
 Ejemplos de implementación de estructuras y clases.
 Ejercicios propuestos.

Objetivo General:
● Adquirir el conocimiento y la habilidad para implementar estructuras de datos, en específico
colecciones y tener claro la forma correcta de implementar clases.

Objetivos Específicos:
● Implementación de colecciones con interfaz Iterator y ciclo For-Each.
● Implementación de clases.

Equipo, Materiales y Herramientas:


● Computadora Personal con Conexión a Internet.
● Navegador de Internet (Chrome, Firefox).
● JDK 1.7 como mínimo.
● IDE: NetBeans 8.0 como mínimo.

Metodología
El estudiante deberá leer las clases teóricas, así como las indicaciones y ejemplos de esta guía; para
luego realizar los ejercicios propuestos.

1
Parte I. Implementación de Estructuras de Datos y Clases.
Recordemos que en la clase teórica, visualizamos que básicamente existen las siguientes estructuras
de datos: Variables, Colecciones, Arreglo y Mapas.

Nuestro motivo de estudio serán las Colecciones, las cuales tienen características similares a los
arreglos; con la diferencia que en ellas solo podemos guardar objetos. Por ejemplo una colección de
Integer, String, Date, Alumno, Clliente, etc.

Recordemos que todas las Colecciones heredan de la interfaz Collection; y trabajaremos con las
interfaces Set y List junto a sus características y diferencias. Una de las principales es conocer que las
colecciones que implementen de Set no guardan objetos duplicados.

Tomemos en cuenta que cada una de estas Interfaces tienen sus métodos; para que las colecciones
realicen las operaciones básicas.

Para recorrer las colecciones visualizamos dos caminos:


 Interfaz Iterator.
 Bucle for – each.

Referente a la implementación de clases, recordemos que los elementos básicos de estas son:
 Atributos.
 Constructores.
 Métodos.

Dependiendo del alcance de la clase; sus atributos privados deberán ser accedidos por métodos
públicos get y set. Esto no es más que la propiedad del encapsulamiento.

2
También tomar en cuenta la manera correcta de acuerdo a los estándares de Java; para nombrar
atributos, métodos y clases.

Parte II. Ejemplos de implementación de Estructuras de Datos y Clases.

Ejemplo a) Recorrido con Interfaz Iterator.


El siguiente ejemplo tiene los siguientes elementos:
 Se crean las clases PruebaIterator y Cliente.
 Creación de una colección ArrayList.
 Variable de instancia de Cliente en PruebaIterator.
 Constructor en la clase Cliente.
 Sobreescritura de toString en Cliente; para imprimir objeto.
 Adición de elementos.
 Recorrido de la colección con elemento Iterator.
 Remover elementos.
 Impresión de elementos de la colección.

3
package componentes;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class PruebaIterator {


public static void main(String arg[]) {
ArrayList<Cliente> cliente = new ArrayList<Cliente>();
cliente.add(new Cliente(1,"Maria",175));
cliente.add(new Cliente(2,"Fernanda",180));
cliente.add(new Cliente(3,"Belén",168));
System.out.println("Lista original: "+cliente.toString());
Iterator it = cliente.iterator();
while (it.hasNext() ) {
Cliente e = (Cliente) it.next();
if (e.getAltura() < 170){
it.remove();
}
}
System.out.println("Lista luego de remover clientes: " + cliente.toString() );
}
}

4
package componentes;

public class Cliente {


private int idPersona;
private String nombre;
private int altura;

public Cliente(int idPersona, String nombre, int altura) {


this.idPersona = idPersona;
this.nombre = nombre;
this.altura = altura;}

public int getAltura(){


return altura;
}

@Override
public String toString() {
return "Persona-> ID: "+idPersona+" Nombre: "+nombre+" Altura: "+altura+"\n";
}
}

La ejecución es la siguiente:

Ejemplo b) Recorrido con bucle for-each.


El siguiente ejemplo, tiene los siguientes elementos:
 Creación de una colección ArrayList.
 Adición de elementos.
 Recorrido de la colección con bucle for - each.
 Búsqueda de elementos.
 Impresión de elementos de la colección.
 Se crea la clase PruebaForEach.

5
package componentes;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class PruebaForEach {


public static void main(String args[]) {
List<String> arboles = new ArrayList<String>();
arboles.add("Roble");
arboles.add("Cedro");
arboles.add("Pino");

for(String elemento:arboles){
System.out.println("El árbol es:" + elemento);
}

String arbol = arboles.get(1);


System.out.println("El árbol encontrado es:" + arbol);
}
}

La ejecución es la siguiente:

6
Ejemplo c) Implementación de Clases.
El siguiente ejemplo, tiene los siguientes elementos:
 Se crean las clases MiClase y PruebaMiClase.
 Métodos get y set con los atributos privados de MiClase.
 Instancia de MiClase en PruebaMiClase.
 Con la instancia acceder al método público getNombre() de MiClase.
 Obtener el atributo privado nombre, a través de getNombre (encapsulamiento).

7
package componentes;

public class MiClase {


private int edad;
private String nombre;

public MiClase(int edad, String nombre){


this.edad = edad;
this.nombre = nombre;
}

public int getEdad() {


return edad;
}

public void setEdad(int edad) {


this.edad = edad;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}
}

8
package componentes;

public class PruebaMiClase {


public static void main(String [] args){
String nombre;
MiClase miClase = new MiClase(40, "Juan");
nombre = miClase.getNombre();
System.out.println("El nombre es: " + nombre);
}
}

La ejecución es la siguiente:

Parte IV. Ejercicios Propuestos

A continuación se presentan algunos ejercicios propuestos:

1. En el ejemplo número uno, adicionar un método que permita adicionar elementos y otro que
permita remover elementos; de la colección cliente. Luego agregar un método que devuelva el
tamaño de la colección.

2. En el ejemplo número dos, agregue dos métodos. Uno que retorne si la colección está vacía y
el otro que devuelva un objeto de dicha colección.

Nota: para ambos casos agregar métodos propios que utilicen los métodos proveídos por la clase
Collection.

3. Construir una clase (Nombrarla Laboratorio) que tenga dos atributos con sus correspondientes
get y set; y dos constructores, uno por defecto y el otro que necesite los dos atributos de la
clase. Cree otra clase de prueba en la que pueda crear instancias de la clase Laboratorio; y
darle valores a los atributos y también recuperarlos con los correspondientes get y set.

9
Conocimientos del estudiante:

Qué debe conocer el estudiante al finalizar esta guía:

➢ La forma de crear colecciones y los métodos que estas implementan desde Collection.
➢ Recorrer colecciones ya sea con un Iterator o con el bucle for-each.
➢ La estructura básica para la implementación de clases: atributos, constructores, get-set,
instancias de clases y métodos propios.

10

Potrebbero piacerti anche