Se plantea a continuación un enunciado y solución para un ejercicio simple de uso de ArrayList con objetos en Java.
Enunciado del ejercicio:
- Crea una clase DirectorCine con los atributos nombre (String), apellidos (String) y edad (int). Crea los métodos get y set para los atributos.
- Crea una clase testEjercicio con el método main y sigue los siguientes pasos:
-En el main, crea tres objetos DirectorCine que tengan como atributos respectivamente: Pedro, Gómez, 31. Juan, Suárez, 55. Elena, Albucar, 29.
-Crea un ArrayList de objetos DirectorCine.
-Añade los tres objetos DirectorCine al ArrayList usando el método add
-Procede a mostrar los datos de los tres directores creados usando un bucle for. Para ello el esquema que debes seguir es el siguiente (aunque hay otras formas de hacerlo)
DirectorCine directorRecuparado; //Para almacenar datos
String nombreRecuperado; String apellidosRecuperados; int edadRecuperada; //Para almacenar los datos
Bucle desde i=0 hasta nombreDelArrayList.size()-1
Recuperar el objeto de la lista
//Por ejemplo DirectorRecuperado = listadoDirectores.get(i);
Recuperar el nombre de ese director
//Por ejemplo: nombreRecuperado = DirectorRecuperado.getNombre();
Mostrar el nombre de ese director
//Por ejemplo System.out.println("El nombre del director número "+i+1+ " es "+nombreRecuperado;
Hacer lo mismo con los apellidos y con la edad
Fin del bucle
9. Comprueba que al ejecutar el método main se muestren por pantalla los nombres, apellidos y edad de los tres directores
Una cosa importante a tener en cuenta es que System.out.println invocado sobre un objeto nos devuelve la referencia en memoria del objeto, cosa que en general carece de utilidad. Para poder mostrar atributos de un objeto hemos de recuperarlos si son tipos primitivos y proceder a mostrarlos (como en este ejercicio), o bien recuperarlos a través de un método del objeto (un método como "mostrarInformacion", "listarDatos" o como se quiera llamarlo. Más adelante veremos que hay una forma estandarizada para hacer esto que es el método toString pero esto no es necesario usarlo ahora).
Solución del ejercicio
Clase DirectorCine
public class DirectorCine{
private String nombre;
private String apellidos;
private int edad; //Paso 1 y 2 pedido ejercicio
public DirectorCine(){
nombre="";
apellidos="";
edad=0; }
public DirectorCine(String nombre,String apellidos, int edad){
this.nombre=nombre;
this.apellidos=apellidos;
this.edad = edad; //Paso 3 constructor pedido ejercicio
}
//Métodos Get
public String getNombre(){
return nombre;}
public String getApellidos(){
return apellidos;}
public int getEdad(){
return edad;} //Paso 3 método get pedido ejercicio
//Métodos set
public void setNombre(String nombre){
this.nombre=nombre;}
public void setApellidos(String apellidos){
this.apellidos=apellidos;}
public void setEdad(int edad){
this.edad=edad;} //Paso 3 método set pedido ejercicio
public void visualizarDirector(){
System.out.println("Nombre : "+nombre+", "+"Apellidos : "+apellidos + " Edad: "+edad);}
}//fin clase
Clase testEjercicio
import java.util.ArrayList;
public class testEjercicio { //Paso 4 clase pedida ejercicio
public static void main (String[] Args){
//Paso 5 pedido ejercicio
DirectorCine director1 = new DirectorCine("Pedro", "Gómez", 31);
DirectorCine director2 = new DirectorCine("Juan", "Suárez", 55);
DirectorCine director3 = new DirectorCine("Elena", "Albucar", 29);
//Declaramos el ArrayList de directores de cine Paso 6 pedido ejercicio
ArrayList<DirectorCine> listaDirectores = new ArrayList<DirectorCine>();
//Declaramos el ArrayList de directores de cine Paso 7 pedido ejercicio
listaDirectores.add(director1);
listaDirectores.add(director2);
listaDirectores.add(director3);
//Paso 8 pedido ejercicio
DirectorCine directorRecuparado; //Para almacenar datos
String nombreRecuperado; String apellidosRecuperados; int edadRecuperada; //Para almacenar los datos
for (int i=0; i<listaDirectores.size(); i++) {
directorRecuparado = listaDirectores.get(i);
nombreRecuperado = directorRecuparado.getNombre();
apellidosRecuperados = directorRecuparado.getApellidos();
edadRecuperada = directorRecuparado.getEdad();
System.out.println("Datos para el director "+(i+1)+" Nombre: "+nombreRecuperado + " Apellidos: "+apellidosRecuperados + " Edad: "+edadRecuperada);
}
}
}