Hola!
Estuve revisando tu ejercicio y está muy bien. Has usado herramientas que aún no se han visto en el curso como el tema del casting (lección nº89).
Voy hacerte algunas sugerencias para tener en cuenta. Pero insisto, tu ejercicio esta muy bien y cumple con la consigna del ejercicio.
Dentro del bucle do while, utilizas el condicional if con su respectivo else. Dentro del else vuelves a utilizar un condicional if:
do{
entradaTeclado.setEntrada();
numeroAux=numeroAux.valueOf(entradaTeclado.getEntrada());
if((int)numeroAux>numeroAleatorio){
System.out.print("No has acertado: el número es menor. Prueba otra vez : ");
}else{
if((int)numeroAux<numeroAleatorio){
System.out.print("No has acertado: el número es mayor. Prueba otra vez : ");
}
}
}while((int)numeroAux!=numeroAleatorio);
Podríamos resolverle directamente con un condicional if y un else if, de la siguiente manera:
do{
entradaTeclado.setEntrada();
numeroAux=numeroAux.valueOf(entradaTeclado.getEntrada());
if((int)numeroAux>numeroAleatorio){
System.out.print("No has acertado: el número es menor. Prueba otra vez : ");
}else if((int)numeroAux<numeroAleatorio){
System.out.print("No has acertado: el número es mayor. Prueba otra vez : ");
}
}while((int)numeroAux!=numeroAleatorio);
Respecto a la clase EntradaTeclado. Hemos conversado un poco sobre ella en una publicación anterior
https://www.aprenderaprogramar.com/foros/index.php?topic=2880.0y mi sugerencia va nuevamente en esa misma dirección. ¿Y cuál es la nueva razón para sostener esto? Pues que en POO siempre pensamos en la modularidad y la reutilización del código como una de nuestras premisas.
Entonces, esta vez que necesitamos que la entrada por teclado sea un tipo int en vez de un tipo String, bien podríamos agregar un nuevo método a la clase GestionadorEntradasTeclado para que cumpla esa necesidad. Definiríamos un nuevo método en esa clase que se llame recogerInt.
De esta manera con un solo objeto gestionamos todo lo que recibimos por teclado :
import java.util.Scanner;
public class GestionadorEntradasTeclado{
/**Devuelve un objeto tipo String que corrsponde al valor ingresado por el usuario a través del teclado.
* @return retorna un objeto tipo String.
*/
public String recogerString(){
Scanner scannerTeclado = new Scanner (System.in);
String valorTeclado = scannerTeclado.nextLine();
return valorTeclado;
}
/**Devuelve un valor tipo int que corresponde al valor ingresado por el usuario a través del teclado.
* @return retorna un valor tipo int.
*/
public int recogerInt(){
Scanner scannerTeclado = new Scanner (System.in);
int valorTeclado = scannerTeclado.nextInt();
String valorTmp = scannerTeclado.nextLine(); // para vaciar el buffer.
return valorTeclado;
}
} // Fin de la clase
Igualmente he de decirte que has utilizado muy bien en tu código el método valueOf para convertir el tipo String en tipo Integer.
Saludos.