Globale, lokale variablen...



  • Hi,

    ich hab mal ne verständnissfrage:

    ich hab in der main methode eine variable ganz oben definiert und diese wird in mehreren try-catch blöcken verändert, das problem ist jetzt, das scheinbar der wert nicht weiter gegeben wird.

    Warum ist das so und wie kann man das umgehen? Ich dachte eigentlich das die variable einmal ganz oben definiert "global" ist und somit immer gilt.

    mfg



  • Wo ist sie denn nun definiert?

    Innerhalb der main-Methode?

    public class MyClass {
        public static void main(String[] args) {
            int meinInt = 42;
        }
    }
    

    Dann ist sie nur innerhalb der main-Methode bekannt.

    Innerhalb der Klasse als statische Variable?

    public class MyClass {
        static int meinInt = 42;
        public static void main(String[] args) {
        }
    }
    

    Dann ist sie für alle Methoden der Klasse bekannt, existiert
    jedoch nur einmal.

    Innerhalb der Klasse als Instanzvariable?

    public class MyClass {
        int meinInt = 42;
        public static void main(String[] args) {
        }
    }
    

    Dann hat jede Instanz dieser Klasse sein eigenes meinInt
    und alle (non-static)-Methoden kennen sie.



  • ja ich hab die direkt unter das main gesetzt und ich dachte sie wäre dann trotzdem überall sichtbar ... dann werd ichd as wohl mit diesem static mal probieren müssen und die variable direkt in die klasse schreiben.


Anmelden zum Antworten