Hola, bueno he estado probando tu ejemplo y no se la verdad que la clase entrada esta un poco extraña creada, porque ya al crear al objeto, directamente pides una cadena llamando al método "pedirCadena()" por este constructor:
public Prueba () { //Constructor
entradaTeclado="";
pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
} //Cierre del constructor
He realizado una prueba de tu clase y funciona bien, ¿podrías ponernos el trozo de código que intentas ejecutar tu?
Este es el main que yo he ejecutado y me ha servido:
public static void main(String[] arg){
System.out.println("Inserta una frase:");
EntradaDeTeclado p =new EntradaDeTeclado();
String cadena=p.getEntrada();
System.out.println(cadena);
}
Intenta eso, ponernos como intentas crear el objeto. Un saludo!
Nota: Ten en cuenta, que en el momento que llamas al constructor, ya el programa esta esperando que metas una cadena por teclado. A lo mejor es por eso por lo que piensas que no funciona.