Hola lobo
Tu código es, conciso y eficiente con formateo incorporado. OK, perfecto.
Aparte de tu ejercicio quiero comentarte lo siguiente:
En lugar de colocar tu código directamente en la ventana del mensaje, usa el botón insertar código (contiene el símbolo de la almohadilla #) y en medio de las etiquetas [cod]..aquí va el código..[/cod]
Esto es para facilitar a quién quiera ver y probar tu código seleccionar y copiar éste, si no, hemos de tener cuidado al seleccionar el código usando cualquier otro método.
-------------
Empiezas el mensaje diciendo que has introducido ligeras variantes.
Las variantes son buenas. Son bien recibidas. Se aprenden cosas nuevas.
Las diferencias que destaco de tu ejercicio con el que se propone son:
Se proponen unos nombres para las clases.
Y tú has escogido tus propios nombres.
En el enunciado del ejercicio se dice que la clase que tu bautizas 'lista', al ser inicializada contenga los nombres de tres cantantes famosos en su ArrayList.
Cosa que tú has obviado.
Estas diferencias no las puedo tratar como variantes que aporten mejoras sustantivas.
En mi opinión, la variante o variantes a destacar son, la simplicidad (por escueta) y eficiencia del código que ya se ha reconocido.
En el foro aceptamos las variantes sobre los ejercicio propuestos. Es más, nos gustan las variantes, aportan nuevos puntos de vista.
Pero, quiero pedirte que junto con las variantes (si las hay), incluyas el ejercicio con sus especificaciones propuestas.
-------------
Otro comentario:
En tu clase EntradaTec, en el método
public String pedirEntrada()
incluyes un mensaje que se muestra antes de escanear el teclado
En este ejercicio, este mensaje es procedente.
Pero cuando hagas otro programa donde tengas que escanear el teclado. ¿Qué vas ha hacer. Crear otra clase EntradaTec, o modificar esta?
Ninguna de estas opciones es deseable. Esta clase tiene un cometido importante, escanear el teclado y devolver su captura, eso, solo eso. De esta forma, esta clase la podrás aprovechar en cualquier proyecto.
Lo correcto en nuestros programas, es que el main que dirije el desarrollo del programa, dé los mensajes apropiados para cada caso. Y las clases accesorias se dediquen a hacer su trabajo (a la chita callando), como si no estuvieran ahí.
No descarto que algunas clases necesitan enviar sus propios mensajes, pero no es lo habitual.
Si me aceptas el símil. El main es el responsable del gobierno que da las directrices de actuación y las conferencias de prensa. Y las otras clases del proyecto son los ministros y funcionarios que se dedican cada uno a realizar únicamente su función.
Eso es todo. Saludos.