Hola Adrián:
1) Cuando pensamos en crear una clase hay que preguntarse "qué es" o "para qué servirá" esa clase. Acto seguido consideraremos qué atributos serán necesarios (sus propiedades) y con qué métodos se regirá el comportamiento de los objetos que pertenezcan a esta clase.
Supongamos la clase Persona con atributos: nombre, apellido, género, edad, altura, peso, y profesión. Y sus métodos: establecer y retornar cada atributos, y mostrar por consola dichos atributos.
No sería correcto establecer un método dentro de la clase Persona que devuelva un índice con fines estadísticos donde se relacione el género, con la edad, el peso, y altura (por más que todos sean atributos del objeto tipo Persona).
No podemos delagar a la clase (Persona) lo que parece ser responsabilidades de otra clase.
Lo que se debería hacer en ese caso -estamos suponiendo- es crear una nueva clase llamada por ejemplo CalculadorEstadisticoDePoblacion que contenga un atributo ArrayList de objetos tipo Persona, y donde uno de sus métodos sea justamente ese método que devuelve un índice que relaciona el género, la edad, el peso, y la altura de cada objeto del ArrayList.
Entonces, volviendo a nuestro caso de interés que es la clase EntradaDeTeclado: si el objeto es tipo EntradaDeTeclado, el atributo entradaTeclado debe ser establecido únicamente por lo que tipeamos por teclado. No podemos establecer el atributo entradaTeclado ni con un parámetro recibido, ni tomando un valor leído en un archivo, ni por el valor leído en un puerto, etc etc. Debe existir una correlación entre el nombre de la clase y lo que ella representa, debe existir una coherencia entre qué es, y para qué sirve.
No debemos responsabilizar a esta clase, con responsabilidades que seguramente son atribuibles a otra clase.
Lo de la reutilización del código está perfecto! Esa es la idea: crear clases bien diseñadas que luego las podamos volver a utilizar en otros programas.
Una clase que gestione las entradas por teclado siempre será útil y te ahorrará tiempo de programación.
Por eso quiero que se entienda bien: la observación no está relacionada por el hecho de que no se utilicen todos los métodos de la clase, sino que apuntaba a lo conceptual de qué responsabilidades tiene una clase.
Si tu clase EntradaDeTeclado tuviera también métodos para leer y devolver no solo objetos tipo String, sino otros métodos para leer y devolver objetos tipo Long, tipo Float, tipo Integer, etc, estaría muy bien! por más que no se utilizaran siempre.
2) Codificaste el Constructor de la clase de la siguiente manera:
public EntradaDeTeclado () {
entradaTeclado="";
pedirEntrada(); //llamada al metodo interno
}
a la línea :
entradaTeclado="";
sería mas correcto escribirla:
private String entradaTeclado="";
donde queda establecido el ámbito 'private', y establecido el tipo 'String' del atributo entradaTeclado.