Hola Jupertivo
He estado leyendo su código, compile, cumple con lo que se pidió, bien, pero he visto algunos fallos en el código, empecemos por clase:
1. En tu clase CantantesFamosos, el titulo de clase siempre se pone en singular, no plural... si hablaras con otro programador y dices "he creado una clase CantantesFamosos" sonara extraño... la clase debería ser
CantanteFamoso (No te preocupes, este error lo suelo cometer yo a veces..) compara esto:
he creado un objeto CantantesFamosos.
he creado un objeto
CantanteFamoso.
hay que tener en cuenta eso!
2. En la misma clase CantanteFamoso he visto tu constructor vacio... esto no es optimo. Cada vez que invocaras un objeto CantanteFamoso aparecera completamente vacio de datos, el cantante no tendra nombre ni disco famoso... En cambio, con un costructor asi:
public CantanteFamoso(){
nombre = "";
discosConMasVentas = "";
}
Ya es diferente, el cantante famoso tiene nombre y disco. Planteate que el constructor es la "identidad" de la clase, por decirlo así. . Me ha funcionado a mi pensar así. Claro, hay casos en el que se debe poner vacío, pero en este caso cambian las cosas.
3. En tu clase test, observamos ahora lo siguiente, y tiene que ver con el punto anterior del constructor:
System.out.println("Empezamos el programa. Para salir, pulse 'return'");
ListaCantantesFamosos lista=new ListaCantantesFamosos(nombreDeLaLista);
cantante=new CantantesFamosos();
cantante.setNombre("Madonna");
Como tienes el constructor vació, lo que estas haciendo aquí es
manipular los atributos directos de clase... esto no es optimo.
Me encanto tu forma de salir del programa por cierto
Saludos!