3
« en: 09 de Noviembre 2015, 16:49 »
Hola Alex, gracias por tomarte el tiempo de revisar mi código, me han sido muy útiles tus observaciones. Aquí están las clases modificadas, espero haberlo hecho correctamente. Saludos!
>>>>> clase EntradaTeclado:
import java.util.Scanner;
public class EntradaTeclado{
//Campos o atributos
Scanner escaner;
String entrada;
//Constructor
public EntradaTeclado(){
//escaner = new Scanner(System.in);//Remueve código ineficiente
//setEntrada(escaner.nextLine());//Remueve código ineficiente
escaner = null;//Inicializamos el campo del objeto
entrada = "";//Inicializamos el campo del objeto
}
/***** Remueve código ineficiente
//Setters
public void setEntrada(String valor_entrada){entrada = valor_entrada;}
*/
//Nuevo método para pedir la entrada del teclado fuera del constructor
public void pedirEntrada(){
escaner = new Scanner(System.in);
entrada = escaner.nextLine();
}
//Getters
public String getEntrada(){return entrada;}
}
>>>>> clase TestListaCantantesFamosos:
import java.util.Iterator;
public class TestListaCantantesFamosos{
public static void main(String[] args){
System.out.println("***** EMPEZAMOS EL PROGRAMA *****");
ListaCantantesFamosos listaCantantesFamosos = new ListaCantantesFamosos();
CantanteFamoso cantante = null;
//EntradaTeclado entrada = null; //Remueve código ineficiente
EntradaTeclado entrada = new EntradaTeclado(); //Ahora usamos un solo objeto para pedir la entrada por teclado cada vez que se necesite
System.out.println("-Añadir dos cantantes famosos a la lista-");
for(int i = 0; i < 2; i++){
cantante = new CantanteFamoso();
System.out.println("Por favor introduce el nombre del cantante");
//entrada = new EntradaTeclado();//Remueve código ineficiente
entrada.pedirEntrada();//Pide entrada por teclato
cantante.setNombre(entrada.getEntrada());
System.out.println("Por favor introduce el disco con más ventas del cantante " + cantante.getNombre());
//entrada = new EntradaTeclado();//Remueve código ineficiente
entrada.pedirEntrada();//Pide entrada por teclato
cantante.setDiscoConMasVentas(entrada.getEntrada());
listaCantantesFamosos.addCantanteFamoso(cantante);
}
System.out.println("-Usando Iterator, mostrar el nombre de los cantantes ingresados y sus discos mas vendidos-");
Iterator<CantanteFamoso> it = listaCantantesFamosos.getListaCantantesFamosos().iterator();
while(it.hasNext()){
CantanteFamoso tempCantante = it.next();
System.out.println("Nombre del cantante: " + tempCantante.getNombre());
System.out.println("Disco con mas ventas: " + tempCantante.getDiscoConMasVentas());
}
String respuesta = "";
do{
System.out.println("-Pedir al usuario un nuevo cantante-");
cantante = new CantanteFamoso();
System.out.println("Por favor introduce el nombre de otro cantante famoso");
//entrada = new EntradaTeclado();//Remueve código ineficiente
entrada.pedirEntrada();//Pide entrada por teclato
cantante.setNombre(entrada.getEntrada());
System.out.println("Por favor introduce el disco con mas ventas del cantante " + cantante.getNombre());
//entrada = new EntradaTeclado();//Remueve código ineficiente
entrada.pedirEntrada();//Pide entrada por teclato
cantante.setDiscoConMasVentas(entrada.getEntrada());
listaCantantesFamosos.addCantanteFamoso(cantante);
System.out.println("-Mostrar la lista actualizada usando Iterator-");
it = listaCantantesFamosos.getListaCantantesFamosos().iterator();
while(it.hasNext()){
CantanteFamoso tempCantante = it.next();
System.out.println("Nombre del cantante: " + tempCantante.getNombre());
System.out.println("Disco con mas ventas: " + tempCantante.getDiscoConMasVentas());
}
System.out.println("Deseas introducir otro cantante? (Y/N)");
//entrada = new EntradaTeclado();//Remueve código ineficiente
entrada.pedirEntrada();//Pide entrada por teclato
respuesta = entrada.getEntrada().toLowerCase();
while( !(respuesta.equals("y")) && !(respuesta.equals("n")) ){
System.out.println("Respuesta no valida. Deseas introducir otro cantante? (Y/N)");
//entrada = new EntradaTeclado();//Remueve código ineficiente
entrada.pedirEntrada();//Pide entrada por teclato
respuesta = entrada.getEntrada().toLowerCase();
}
}while(respuesta.equals("y"));
System.out.println("***** FIN DEL PROGRAMA *****");
}//Cierre del main
}//Cierre de la clase