JavaScript89: Scanner

Hallo, ich bin gerade dabei, ein Code zu schreiben, der auf die Eingaben des Users reagiert. Momentan ist es nur ein Konsolenprogramm. Mein Code schaut so aus:

Einmal die .java-Datei Eingabe:

public class Eingabe{  
	  
	public static void main(String[] args){  
		Eingabefelder Ausgabe = new Eingabefelder();  
		  
	}  
	  
}

Dann noch die Eingabefelder .java Datei:

import java.util.*;  
  
public class Eingabefelder{  
	  
	Scanner eingabe_scanner = new Scanner(System.in);  
	static String vorname;  
	static String nachname;  
	  
	  
	public String 1vorname(){  
		System.out.println("Vorname:");  
		vorname = eingabe_scanner.next();  
		return(vorname);  
	}  
}

Irgendetwas habe ich vergessen aber was? :)

  1. Hi!

    Irgendetwas habe ich vergessen aber was? :)

    Die Problembeschreibung. Und so kann ich nur raten: Das Programm startet anscheinend nicht. Ich denke, das wird es tun, aber außer einer Objekt-Instantiierung passiert nichts weiter, denn vom Objekt Ausgabe wird nichts aufgerufen.

    Lo!

    1. Hi!

      Irgendetwas habe ich vergessen aber was? :)

      Die Problembeschreibung. Und so kann ich nur raten: Das Programm startet anscheinend nicht. Ich denke, das wird es tun, aber außer einer Objekt-Instantiierung passiert nichts weiter, denn vom Objekt Ausgabe wird nichts aufgerufen.

      Lo!

      Das Programm startet, d.h. ich kann es kompilieren und auch starten. Nur wird mir kein Anzeigebereich angezeigt, wo ich etwas hineintippen kann.

      1. Ich denke das Problem liegt in der main Methode.

        public class Formular{
        public static void main(String[] args){
        System.out.println("Bitte geben Sie die angeforderten Daten ein.");
        Eingaben Ausgabe = new Eingaben();
        }
        }

        Er kann wohl irgendwie kein neues Objekt erstellen. Habe ich da ein Befehl vergessen?

        1. Hi!

          Ich denke das Problem liegt in der main Methode.

          public class Formular{
          public static void main(String[] args){
          System.out.println("Bitte geben Sie die angeforderten Daten ein.");
          Eingaben Ausgabe = new Eingaben();
          }
          }

          Er kann wohl irgendwie kein neues Objekt erstellen. Habe ich da ein Befehl vergessen?

          Dann gäbe es eigentlich eine Fehlermeldung. Für Java gibt es IDEs, also Entwicklungsumgebungen, die solche mächtigen und sehr hilfreichen Werkzeuge wie einen Debugger mitliefern (Eclipse, um nur mal eine IDE zu nennen). Wenn du ernsthaft Java (oder Programmieren allgemein) lernen willst, empfehle ich dir, dich mit solchen Werkzeugen zu beschäftigen. Damit kann man sehr gut, Wunsch und Wirklichkeit miteinander vergleichen. Um deine Vermutung zu bestätigen oder sie als falsch zu erkennen, kannst du einen Breakpoint auf die new-Anweisungszeile setzen und das Programm im Debug-Modus starten. Der Debugger hält an der Stelle an. Mach dann einen Einzelschritt vorwärts. Dabei gibt es zwei Möglichkeiten, mit der einen kann man in die aufgerufene Funktion abtauchen und die zweite überspringt ihr Innenleben. Nimm die zweite. Jetzt sollte die Variable Ausgabe etwas zugewiesen bekommen haben. Mit dem Maus-Cursor auf die Variable zu zeigen, ergibt üblicherweise einen Tooltip, der dir den Inhalt anzeigt. Es gibt aber auch in der Debug-Ansicht der IDE einen Teil, der alle aktuellen Variablen aufführt und in dem man stöbern kann.

          Lange Rede, kurzer Sinn, damit solltest du sehen, dass die Instantiierung geklappt hat. Aber dann ist main() und damit das Programm auch schon am Ende. Deine Methode zur Vornamenseingabe wird nicht von irgendeiner höheren Gewalt aufgerufen. Das musst du schon selbst tun, wenn du ihren Code ausführen lassen willst.

          Lo!

          1. Hallo dedlfix,

            Deine Methode [...] wird nicht von irgendeiner höheren Gewalt aufgerufen.

            bist du dir da so sicher? Bei meinen Programmen habe ich häufiger das Gefühlt, dass da irgend eine "höhere Gewalt" im Spiel sein muss.

            Gruß, Jürgen