Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: barriway en 09 de Julio 2015, 10:27
		
			
			- 
				Buenos días aquí dejo una posible solución al ejercicio CU00666B:
 
 import java.util.Scanner;
 
 public class EntradaTeclado{
 
 private String entrada;
 Scanner scaner;
 
 public EntradaTeclado(){
 scaner = new Scanner(System.in);
 entrada = scaner.nextLine();
 }
 
 public String getEntrada(){
 return entrada;
 }
 
 public void setEntrada(){
 entrada = scaner.nextLine();
 }
 }
 
 import java.util.ArrayList;
 
 public class ListaCantantesFamosos{
 
 private ArrayList<String> listaCantantes;
 
 public ListaCantantesFamosos(){
 listaCantantes = new ArrayList<String>();
 listaCantantes.add("Joaquin Sabina");
 listaCantantes.add("Carlos Cano");
 listaCantantes.add("David Broza");
 }
 
 public ArrayList<String> getLista(){
 return listaCantantes;
 }
 
 public String getCantante(int posicion){
 if(posicion>=0 && posicion<listaCantantes.size()){
 return listaCantantes.get(posicion);
 }else{
 return "No existe cantante para esa posición de la lista";
 }
 }
 
 public void addCantante(String nombreCantante){
 listaCantantes.add(nombreCantante);
 }
 
 public void removeCantante(int posicion){
 if(posicion>=0 && posicion<listaCantantes.size()){
 listaCantantes.remove(posicion);
 }
 }
 
 public int getTamaño(){
 return listaCantantes.size();
 }
 }
 
 
 public class TestForExtendido{
 
 public static void main(String Arg[]){
 
 ListaCantantesFamosos listaCantantes=new ListaCantantesFamosos();
 EntradaTeclado entradaTeclado;
 
 do{
 System.out.print("Dame el nombre de un cantante famoso : ");
 entradaTeclado = new EntradaTeclado();
 listaCantantes.addCantante(entradaTeclado.getEntrada());
 
 int numeroCantante=1;
 for(String cantante : listaCantantes.getLista()){
 System.out.println("El cantante numero "+ numeroCantante+" es : "+cantante);
 numeroCantante++;
 }
 
 System.out.print("¿Quieres continuar?(S/N)");
 entradaTeclado.setEntrada();
 }while(entradaTeclado.getEntrada().equals("S"));
 }
 }
 Un saludo
- 
				Hola:
 
 Estuve revisando tu ejercicio y lo veo bien.
 Recuerda las correcciones que marcamos en el ejercicio
 
 https://www.aprenderaprogramar.com/foros/index.php?topic=2880.0
 
 acerca de la clase EntradTeclado, y sobre el uso de la letra 'ñ' en programación.
 
 Más allá de eso, me gustaría analizar lo siguiente:
 Declaras y codificas un recorrido completo de la lista donde se muestran los cantantes a través de la consola, dentro del método main.
 A esto no lo veo correcto. Lo más lógico sería que ese recorrido conforme un método en si, y que pertenezca a la clase ListaCantantesFamosos.
 De este modo, un objeto tipo ListaCantantesFamosos tendría los siguientes métodos:
 
 getCantante
 addCantante
 removeCantante
 getTamaño
 mostarLista
 
 El código con esa modificación sería:
 
 Clase ListaCantantesFamosos
 import java.util.ArrayList;
 
 public class ListaCantantesFamosos{
 
 private ArrayList<String> listaCantantes;
 
 public ListaCantantesFamosos(){
 listaCantantes = new ArrayList<String>();
 listaCantantes.add("Joaquin Sabina");
 listaCantantes.add("Carlos Cano");
 listaCantantes.add("David Broza");
 }
 
 public ArrayList<String> getLista(){
 return listaCantantes;
 }
 
 public String getCantante(int posicion){
 if(posicion>=0 && posicion<listaCantantes.size()){
 return listaCantantes.get(posicion);
 }else{
 return "No existe cantante para esa posición de la lista";
 }
 }
 
 public void addCantante(String nombreCantante){
 listaCantantes.add(nombreCantante);
 }
 
 public void removeCantante(int posicion){
 if(posicion>=0 && posicion<listaCantantes.size()){
 listaCantantes.remove(posicion);
 }
 }
 
 public int getTamaño(){
 return listaCantantes.size();
 }
 
 public void mostrarLista(){
 int numeroCantante=1;
 for(String cantante : listaCantantes){
 System.out.println("El cantante numero "+ numeroCantante+" es : "+cantante);
 numeroCantante++;
 }
 }
 
 }
 
 Clase TestForExtendido
 public class TestForExtendido{
 
 public static void main(String Arg[]){
 
 ListaCantantesFamosos listaCantantes=new ListaCantantesFamosos();
 EntradaTeclado entradaTeclado;
 
 do{
 System.out.print("Dame el nombre de un cantante famoso : ");
 entradaTeclado = new EntradaTeclado();
 listaCantantes.addCantante(entradaTeclado.getEntrada());
 
 listaCantantes.mostrarLista();
 
 System.out.print("¿Quieres continuar?(S/N)");
 entradaTeclado.setEntrada();
 }while(entradaTeclado.getEntrada().equals("S"));
 }
 }
 Analízalo y cualquier duda estamos aquí para revisarlo nuevamente.