Hola perico
En primer lugar me gusta el humor que pones en tu alias, seguro que también se encontrará imaginación en tu código.
Has enviado un segundo mensaje donde solventas la duda que planteabas en el primero.
Bien, solo falta seguir el manual para conseguir lo que uno quiere.
En cuanto a tu código, he de decirte que me ha gustado. Me ha gustado por los recursos que has utilizado.
Yo he mamado Java en este lugar y tu estilo de programación no lo había visto todavía. Presumo que lo has aprendido en otro sitio. Solo puedo decir que me gusta por lo novedoso.
Yo no soy ningún experto, pero aún así voy a darte mi opinión.
1º Aunque la clase Cantante Famoso para este ejercicio no necesita más de lo que le has dado (atributos y getters).
Para salir a la palestra y servir para todo, no le sobraría un constructor vacío y otro con parámetros, tampoco estaría de más adjuntarle los setters y por pedir, que no falte el método toString.
Ah, y para darle versatilidad, hacer la clase independiente guardándola en un archivo distinto.
Con estos aditamentos, una clase sirve lo mismo para una pelea de barrio como para ir a la guerra de Irak.
2º En la clase ListaCantantesFamosos además de sus atributos y los métodos para gestionar la lista has colocado el método sobrecargado añadirCantantes. De este método, yo habría colocado el que no tiene parámetros (el que lee de teclado) en la clase del main. Así le quitaría responsabilidades a la clase ListaCantantesFamosos y se la devolvería al main para que sea esta clase la que dirija el cotarro.
3º No se si esto influiría en la eficiencia, pero en algún lugar para añadir un nuevo cantante a la lista utilizas hasta cuatro instrucciones, cuando se podría hacer con una, ejem.
listaCantantes.add(new CantanteFamoso(nombre, discoSuperventas));
Para esto claro haría falta la existencia de un construtor con parámetros.
Post data: Bienvenido a aprenderaprogramar, espero que te quedes en enseñaraprogramar
Saludos de toni de la a pe erre