Hola momo
Tu ejercicio es funcional al 100%
Y cumple lo solicitado en el enunciado
Las clases EntradaTeclado y ListaCantanteFamoso, correctas, sin comentarios
La clase TestListaCantanteFamoso, también funciona bien, pero te quiero comentar lo siguiente:
En estas líneas
Scanner tecladoEscaner=new Scanner(System.in);
String resp=tecladoEscaner.nextLine();
Has copiado el código de la clase EntradaTeclado. Estas repitiendo código que ya tienes escrito.
He aquí dos formas de conseguir lo que tu quieres: Una respuesta por teclado
primeraEntrada = new EntradaTeclado();
String resp = primeraEntrada.getEntrada();
Vuelves a utilizar el mismo objeto primeraEntrada
o
EntradaTeclado segundaEntrada = new EntradaTeclado();
String resp = segundaEntrada .getEntrada();
Creas un nuevo objeto 'segundaEntrada'
A continuación tienes un else if
else if(resp.equals("n")==false || resp.equals("N")==false)
Cuya condición se ejecutará siempre
Pongas lo que pongas en las comillas de equals, comparado con false siempre dará false.
Es decir, es cierto que es false, pues se cumple la condición, al cumplirse la condición se ejecutará el break; que por cierto rompe el bucle del while no la condición del if
Así pues, esta condición del if te la puedes ahorrar y poner un simple else con el break dentro.
A, se me olvidaba
Cuando quieras que el usuario del programa de una entrada por teclado, preséntale un mensaje indicando que se espera recibir, si un nombre, un número, o un si o un no
Por ejemplo
System.out.println("Deceas Agregar otro Cantante. Pulsa S para Si, cualquier otra tecla para No");
Eso es todo. Saludos