Verwirrung bei Java-Standardwerten, warum keine für funktionsbezogene Variablen? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Warum werden lokale Variablen in Java nicht initialisiert? 14 AntwortenIch habe einige Verwirrung mit der Begründung, die meiner Meinung nach eine Inkonsistenz ist.
Zum Beispiel
public class Test
{
static int a;
public static void main(String[] args)
{
System.out.println(a);
}
}
Damit wird erwartungsgemäß 0 ausgegeben. Aber sagen wir, wir hätten das stattdessen,
public class Test
{
public static void main(String[] args)
{
int a;
System.out.println(a);
}
}
Dies wird für mich nicht kompiliert, da ich mich beschwere, dass a nicht initialisiert wurde. Ich hatte damit gerechnet, dass es 0 ausgibt ...
Was mich zu einigen Fragen führt:
1) Warum haben funktionsbezogene Variablen keine Standardwerte?
2) Könnte das statische Schlüsselwort der Grund sein? Und warum?