Hola b_herzeleid, aunque tu código funciona podríamos decir que no está bien diseñado de acuerdo con los principios de la programación orientada a objetos.
Si has seguido el curso desde el principio deberías tener en cuenta diferentes cuestiones:
a) Una clase representa algo, justamente lo que indique su nombre. No es correcto que una clase se llame EntradaDeTeclado y que incluya un método como public void comparaCad(String str,String str2) ya que comparar cadenas no es algo que le corresponda a una entrada de teclado. Esto es algo que debería hacerse en una clase que tuviera por nombre ComparadorDeCadenas o algo similar.
b) En la clase EntradaDeTeclado incluyes código como
public EntradaTeclado() {
cad1=cad2="";
System.out.println("Ingrese cadena 1:");
cad1 = pedirEntrada();
System.out.println("Ingrese cadena 2:");
cad2 = pedirEntrada();
comparaCad(cad1, cad2);
}
Los constructores están destinados principalmente a inicializar los atributos de los objetos. No es correcto incluir mensajes con System.out.println ni ejecutar acciones propias del desarrollo de un programa. El desarrollo de un programa, quien "reparte el juego", debe ser la clase con el método main.
c) Tu clase con el main no está bien planteada por lo que he comentado anteriormente.
La recomendación es seguir el curso completo, ir haciendo ejercicio a ejercicio y comprobando las soluciones en los foros, donde hay numerosos ejemplos de ejercicios resueltos. Por ejemplo para este ejercicio puedes consultar una solución correcta en
https://www.aprenderaprogramar.com/foros/index.php?topic=2089.0Saludos