Buenas noches, SantiadoArg.
El ejercicio lo veo correcto, sólo comentarte que pedía:
Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido.
Es decir, después de entrar el cantante tienes que mostrar otra vez la lista de los cantantes, pero esta vez actualizada. Eso lo conseguimos con invocar el método "listarCantantes()" después de la entrada.
También ten cuidado en las indicaciones hacia los usuarios que utilizan tu programa. Dices que se debe contestar con "Si" o "No" y luego, dentro del bucle introduces la condicional:
if( entrada.equals("si"))
Es decir, que si yo fuera usuario que utiliza tu programa y contesto con "Si" no me entrará en la condición. Puedes omitir la importancia de que si la entrada se haya hecho en mayúsculas o minúsculas convertiendo la misma sólo en minúsculas mediante en método "toLowerCase()", pero creo que en la altura de la entrega CU00666B del curso Java desde cero aún no habéis estudiado este tema.
Todo lo demás lo veo bien.
El código de la clase "Test" con las modificaciones que te comenté quedará así:
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
ListaCantantesFamosos lista = new ListaCantantesFamosos("Fenomenos");
Scanner sc = new Scanner(System.in);
String entrada = "";
System.out.println("ingrese un nuevo cantante a la lista");
lista.setCantante((entrada = sc.nextLine()));
lista.listarCantantes();
do
{
System.out.println("Desea ingresar un nuevo cantante? \"Si\" o \"No\"");
entrada = sc.nextLine();
entrada = entrada.toLowerCase(); //Convertir la variable "entrada" en miúsculas
if( entrada.equals("si"))
{
System.out.println("Nombre:");
lista.setCantante((entrada = sc.nextLine()));
}
else
{
entrada = "no";
lista.listarCantantes();
}
}while(!"no".equals(entrada));
System.out.println("termino el programa");
}
}
Pero ya te digo. Sobre la primera observación creo que te has despistado leyendo el cometido del ejercicio y no es un error porque no sabes.
Sobre el segundo, creo que es importante, no porque es un error grave, sino que el usuario se preguntará por qué no le da opción a entrar más cantantes si ha contestado que "Si".
A cerca de lo que comentas por qué no te ha listado el objeto "ListaCantantesFamosos lista", pues justamente por eso, porque es un objeto no es una array. Dentro de este objeto sí que tienes una variable que es una array y la recorres con el método "listarCantantes()" pero no lo es el objeto en sí. (Espero también que revise mi contestación un moderador de la página, porque no sé si te doy exactamente la explicación).
También quería felicitarte por el hecho de que te haya salido el ejercicio a la primera. Yo, con este ejercicio tenía bastantes más dificultades
Saludos.