Wie andere gesagt haben, diesen Standort für das Erlernen der Grundlagen der Sprache keine Schule ist. Aber früher oder später werden die Leute wahrscheinlich hierher kommen, um eine Antwort auf Ihre genaue Frage zu finden.
Sie haben einen großen Missverständnis wie Java funktioniert. In Ihrem Code machen Sie zwei Fehler. Als erstes versuchen Sie, auf eine Variable zuzugreifen, die bereits verschwunden wäre, wenn Sie darauf zugreifen könnten. Und zweitens versuchen Sie, auf eine Variable zuzugreifen, von der Sie nicht "sehen" können. Ihr Code:
public static void main(String[] args) {
operators.getMonthNumber("January");
System.out.println(monthNumber);
}
Weitere Informationen über erste Problem: Sie deklarieren die Variable Monthnumber in Ihrer Methode getMonthNumber. Es existiert also nur für die Dauer der Methode. Wenn die Methode aufgerufen wird, ist die Variable also vorhanden. Nach der Methode ist die Variable verschwunden. Es wird weggeworfen. Aber eine Kopie des Werts der Variablen wird in Ihrer Methode zurückgegeben. Sie können also die Kopie nehmen und in eine neue Variable einfügen und sie verwenden oder direkt verwenden. Darauf haben Sie mit
hingewiesen int returnedMonthNumber = operators.getMonthNumber ("Januar");
Ich kenne keine Programmiersprache, die so funktioniert, wie Sie es erwarten.Und wenn es einen gäbe, wäre es nicht wirklich populär, weil dies viele Bugs verursachen könnte, weil ein Tippfehler dazu führen könnte, dass das Programm eine völlig andere Variable verwendet, die Sie nicht verwenden wollten.
Weitere Informationen zum zweiten Problem: Im Allgemeinen sind Variablen nur in Klammern zugänglich. Das bedeutet, Variablen, die innerhalb von {} deklariert sind, sind nur innerhalb derselben Klammern oder Klammern innerhalb dieser Klammern zugänglich. Beispiel:
public static void main(String[] args) { // first bracket
final int dollar = 2;
System.out.println("i can access dollar: " + dollar);
{
final int euro = 33;
System.out.println("I can access dollar: " + dollar + ", and i can access euro: " + euro);
}
// you have to remove +euro to compile this:
System.out.println("But i cant access euro because i am outside the brackets where euro is declared: " + euro);
}
Behalten Sie diese Regel im Kopf, da sie immer funktioniert. Es funktioniert mit Methoden, mit ifs, mit while/for/do while usw. Wenn der Compiler eine Variable nicht sehen kann, ist es wahrscheinlich ein Tippfehler oder der falsche Block.
Ich habe viele Anfänger gesehen, die sagen, dass etwas wie du sagtest. Sie fragen sich: "Warum wird der Compiler nicht wissen, was ich will? Es ist offensichtlich!". Aber es ist eigentlich nicht offensichtlich. Das Verhalten, das Sie erwarten, ist nur "nützlich" in Ihrem Kopf. Es könnte Ihnen eine halbe Codezeile sparen. Aber in irgendeinem fortgeschritteneren Beispiel werden Sie sehen, dass es eine wirklich schlechte Idee wäre, es so zu implementieren, wie Sie es erwarten. Und jeder Anfänger erkennt das irgendwann: Wenn Sie sich wundern, warum der Compiler nicht etwas tun wird, was Sie wollen, dann haben Sie ihm einfach nicht gesagt, was er tun soll. Wenn du weißt, was ich meine.
Ihr Code wird nicht einmal kompiliert. Bitte lesen [mcve]. In diesem Sinne: bitte verstehen Sie, dass diese Seite keine Programmierschule ist, wo wir die absoluten Grundlagen erklären und Ihre Syntaxfehler für Sie beheben. – GhostCat