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.