Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: el_calderas en 21 de Febrero 2015, 17:02
		
			
			- 
				Hola, esta es mi solución para este ejercicio del curso de java.
 
 He utilizado tres clases, la clase ListaCantantesFamosos:
 
 import java.util.ArrayList;
 
 public class ListaCantantesFamosos
 {
 private ArrayList<String>nombresCantantes;  //declaramos un objeto de tipo ArrayList
 private String nombreLista; //siempre hay que crear el objeto que contiene el nombre del array que creamos.
 
 //constructor
 public ListaCantantesFamosos(String nombre){ //al llamar al constructor nos pedira que introduzcamos el nombre de la lista
 nombreLista=nombre;
 nombresCantantes=new ArrayList<String>();
 nombresCantantes.add("Madona");// con el constructor, añadimos directamente 3 nombres a la lista
 nombresCantantes.add("Queen");
 nombresCantantes.add("Bon Jovi");
 }
 
 public void addNombre(String newNombre){//metodo para añadir nombres a la lista
 nombresCantantes.add(newNombre);
 }
 
 public String getNombre(int posicion){//metodo para obtener un nombre de la lista, segun su indicie
 if(posicion>=0 && posicion<nombresCantantes.size()){
 return nombresCantantes.get(posicion);
 }else{
 return "No existe nombre para la posición solicitada";
 }
 }
 
 public int getTamaño(){//metodo para obtener el tamaño de la lista
 return nombresCantantes.size();
 }
 
 public void removeNombreLista(int posicion){//metodo para borrar un nombre de la lista
 if (posicion>=0 && posicion<nombresCantantes.size()){
 nombresCantantes.remove(posicion);
 }else{} //no exite nombre para la posicion solicitada. No se ejecuta ninguna instruccion
 }
 }
 La clase que contiene el main, TextListaCantantes:
 
 import java.util.Scanner;
 
 public class TextListaCantantes
 {
 public static void main (String[]args){
 int x;
 System.out.println("¿Cuantos nombres vas a introducir?");
 Scanner sc=new Scanner(System.in);// se crea un objeto de tipo Scanner
 x=sc.nextInt();//nextInt(): metodo para leer un entero con la clase Scanner. Se lee el entero de cuantos nombres se van a introducir
 sc.nextLine();//limpiar bufer de entrada. SIEMPRE acontinuación de leer datos numericos y despues se tenga que leer datos de tipo caracter.
 
 ListaCantantesFamosos lista=new ListaCantantesFamosos("Cantantes");// se crea un objeto de tipo Array(String)(ListaCantantesFamosos)
 for(int i=0;i<x;i++){
 System.out.println("Por favor, introduzca nombre de cantante");
 EntradaDeTeclado entrada=new EntradaDeTeclado(); //Se crea un objeto tipo EntradaTeclado. Se utiliza la clase EntradaDeTeclado.
 lista.addNombre(entrada.getEntrada());//addNombre():metodo de la clase ListaCantantesFamosos para añadir un nombre a la lista
 }
 
 System.out.println("La lista ha quedado formada por:");
 for(int i=0;i<lista.getTamaño();i++){
 System.out.println(lista.getNombre(i));
 }
 }
 }
 Y la clase que ya utilizamos en otro ejercicio, EntradaDeTeclado:
 
 import java.util.Scanner;
 
 public class EntradaDeTeclado
 {
 private String entradaTeclado; //variable de instancia(campo) de la clase
 
 public EntradaDeTeclado(){ //constructor
 entradaTeclado=""; //inicializamos la instancia de la clase
 pedirEntrada(); // Esto es una llamada a un método interno. Al crear un objeto automaticamente, ejecutamos el metodo
 }
 
 public void pedirEntrada(){ //metodo de la clase
 Scanner entradaEscaner=new Scanner(System.in);
 entradaTeclado=entradaEscaner.nextLine();
 }
 
 public String getEntrada(){
 return entradaTeclado;
 }
 
 //en esta prueba no se utilizan estos metodos
 public String getPrimeraPalabra(){
 
 for(int i=0;i<entradaTeclado.length()-1;i++){
 if(entradaTeclado.substring(i,i+1).equals(" ")){
 return entradaTeclado.substring(0,i+1);
 }
 }
 return entradaTeclado; //en el caso de que no se detecte ningun espacio, devolvemos lo que haya
 }
 
 public int getLongitud(){
 return entradaTeclado.length();
 }
 }
 Un saludo.
- 
				Hola has realizado el ejercicio y has hecho más de lo que pedía el enunciado, ya que el enunciado sólo pedía añadir dos cantantes más mientras que tú das opción a que el usuario elija el número de cantantes, así que perfecto y adelante.
 
 Comentar que aAunque pueden usarse eñes en general se recomienda no usarlas porque a la larga pueden dar problemas, por ello te diría que mejor getSize que getTamaño
 
 Salu2
- 
				Gracias por el consejo. La verdad es que por falta de constumbre, mezclo español e ingles en las declaraciones y a veces es un lio.
 Un saludo.