Hola David, no es farragoso que pongas varias clases siempre que cada clase tenga un contenido mínimo (es decir, no tendría sentido crear una clase para poner sólo dos líneas por ejemplo) y siempre que sea adecuado para un buen diseño. Si es así, te sirve para practicar con programación orientada a objetos.
Sobre el ejercicio los comentarios serían:
MISMOS QUE PARA EL EJERCICIO ANTERIOR:
Incoherencia: tener un atributo en la clase ListaCantantesFamosos denominado nombreDeCantante. Ese atributo debería llamarse nombreDeLaLista.
private String nombreDeCantante; // Establecemos atributo nombre de la lista.
Preferible no usar eñes en nombres de atributos, clases o métodos. Por eso es mejor addDatos que añadeDatos
Los métodos en general deben ser public y no void, por ejemplo:
Mal: static void solicitudDeDatos(int veces,String tipoDeDatos)
Bien: public void solicitudDeDatos(int veces,String tipoDeDatos)
De este modo, para invocar un método antes tienes que crear un objeto usando new (no podrás hacerlo invocando directamente VisualizadorDeMensajes.solicitudDeDatos(...) ). ¡En la programación orientada a objetos se trabaja creando objetos, solo en algunas circunstancias especiales no se hace así!
PARA ESTE EJERCICIO EN CONCRETO
Un for extendido preferiblemente no lleva contador: leer este hilo,
www.aprenderaprogramar.com/foros/index.php?topic=3210En la clase ListaCantantesFamosos tienes un mal diseño que es este:
public void añadeDatos (String valor_nombre) // Añade al ArrayList el nombre introducido.
{
listaDeCantantes.add (valor_nombre);
listadoCompleto(); // Llama al metodo que muestra todo el contenido del ArrayList.
} // Cierre del metodo.
Para hacer un buen diseño un método debe encargarse de hacer una cosa concreta, tener un fin concreto y no varios fines ni hacer varias cosas. El método añadeDatos o addDatos debe encargarse sólo de añadir datos, no es un buen diseño que en un método cuyo nombre indica que sirve para añadir datos pongamos una instrucción para mostrar datos por pantalla. ¿Mostrar algo por pantalla es añadir un dato? No, por lo tanto deben ser tareas separadas. Lo normal será que desde el main nos encarguemos primero de añadir el dato y luego de hacer que se muestre por pantalla.
Saludos