Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Zikem10 en 02 de Agosto 2014, 18:29
-
Este programa no corre cuando trato de crear el objeto
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
private String entradaTeclado; //Variable de instancia (campo) de la clase
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
} //Cierre del constructor
public void pedirEntrada () { //Método de la clase
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine (); } //Cierre del método pedirEntrada
public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
public String getPrimeraPalabra () {
/*IMPORTANTE: EN JAVA LOS OBJETOS NO SE PUEDEN COMPARAR USANDO == POR ESO ESTO NO FUNCIONARÁ
if (entradaTeclado.substring(0,1)=="j") {
System.out.println ("Hemos detectado una j");
} else { System.out.println ("Mira esto:" + entradaTeclado.substring(0,1) ); }*/
for (int i=0; i < entradaTeclado.length() - 1; i++) {
if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
return entradaTeclado.substring(0, i+1); }
}
return entradaTeclado; //Caso de que no se detecte ningún espacio devolvemos lo que haya
} //Cierre del método getPrimeraPalabra
public int getLongitud () { //Método de la clase
return entradaTeclado.length();
} //Cierre del método getLongitud
} //Cierre de la clase
-
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.