Hola PatAs, tiene cierta importancia poner nombres adecuados a las clases, y el nombre GenerarNumeroAleatorioCien no es un nombre adecuado. En este hilo puedes orientarte sobre esto:
https://www.aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698Trabajar con un String para después convertirlo a numérico como haces con Integer.valueOf(...); puede no ser lo más adecuado. Es decir, puedes trabajar directamente con valores numéricos, que para este ejercicio parece más adecuado.
A mí me ha saltado un error. Primero he introducido un número, luego he tenido que pulsar enter y luego me ha saltado este error:
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.valueOf(Integer.java:766)
at TestAdivinarNumero.main(TestAdivinarNumero.java:11)
El error se debe a que no puede transformar un enter o retorno de carro en un valor numérico.
El problema pareces tenerlo en que el constructor de la clase EntradaPorTeclado contiene esto:
public EntradaPorTeclado(){
entradaTcl= "";
pedirEntrada(); //Llamado a un mètodo interno
}
Si te fijas en el constructor estás invocando el método pedirEntrada.
En el main tienes esto:
EntradaPorTeclado nuevoNumero = new EntradaPorTeclado();
nuevoNumero.pedirEntrada();
Se genera una llamada por la invocación en el constructor, y otra por la llamada que haces desde el main, de ahí que después de introducir un número (llamada del constructor), te vuelva a pedir otra entrada (llamada desde el main).
Esto deberías corregirlo. Puedes consultar otras soluciones en los foros para orientarte.
Saludos