Hola luisdn.
Te cuento un poco.
Clase CantanteFamoso1:
Es recomendable usar los modificadores de acceso a los atributos de una clase, en esta clase lo ideal sería que fuesen "private", puesto que no nos interesa que se pueda acceder a ellos directamente desde otras clases, para eso usaremos los métodos setter y getter.
Luego creas un método tipo procedimiento que establezca el valor del nombre y del disco al mismo tiempo, lo que te haría falta es un constructor con parámetros.
public CantanteFamoso1( String nom, String dis){
nombre = nom;
disco = dis;
}
También faltarían los métodos para establecer (setter), para poder asignar los valores de los atributos, que serían un método por cada atributo y no uno para establecer el valor de los dos, para que lo entiendas mejor, ¿que pasaría si quisiéramos solo cambiar el valor de uno de los atributos?.
Clase ListaCantantesFamosos1:
Igual que en la anterior clase, es recomendable usar los modificadores de acceso, tanto para métodos como para atributos.
Sobre el nombre del método "addList", lo que añadimos es un cantante a la lista, no una lista, por lo cual sería mejor algo parecido a "addCantanteFamoso()" o algo parecido, es bueno que los nombres de atributos y métodos describan en la medida de lo posible lo que representan.
Clase Test:
Si has escrito ya el constructor con parámetros de la clase CantanteFamoso1 que te comente unas líneas arriba, podrás comprobar que ahora puedes crear los nuevos cantantes de la siguiente forma:
CantanteFamoso1 cantante = new CantanteFamoso1(nombre, disco);
y si quisieras cambiar el valor de alguno de sus atributos, podría usar alguno de los métodos setter que te comente anteriormente.
Otra cosa que podrías cambiar es la parte del iterator en la clase test, podría crear un método en la clase ListaCantantesFamosos1 que muestre el contenido de la lista, de esta forma no repetirás esa parte del código, puesto que solo tendrías que llamar al método del objeto creado, por ejemplo en la clase test escribiríamos lo siguiente en vez de todo lo que con lleva el recorrido de la lista:
lista1.mostrarContenidoLista();
Y en la clase ListaCantantesFamosos crearíamos el siguiente método:
public void mostrarContenidoLista() {
Iterator<CantanteFamoso1> it = list.iterator();
while(it.hasNext()){
CantanteFamoso1 cantante = it.next();
System.out.print("Cantante: " + cantante.getNombre());
System.out.println(". Disco: " + cantante.getDisco());
}
}
Saludos.