[JAVA] Wann wird der Standardwert ohne explizite Initialisierung automatisch eingegeben?

Wenn Sie nicht explizit initialisieren, ob der Anfangswert automatisch eingegeben wird oder der unbestimmte Wert noch eingegeben wird, wird eine Zusammenfassung der Unterschiede in Abhängigkeit von der Sprache und dem Deklarationsort angezeigt.

Java#

Instanzvariable

Der Standardwert wird automatisch in die Instanzvariable eingegeben.

public class Sample{
    int x;    //Instanzvariable

    void show(){
        int tmp;    //Lokale Variablen
        System.out.println("x = " + x);
    }
}
Variablentyp Standardwert
int , short , byte , long 0
float , double 0.0
char '\u0000'
boolean false
Objektreferenz null

Selbst im Fall eines Arrays haben alle Elemente Standardwerte.

Lokale Variable

Lokale Variablen werden nicht automatisch initialisiert. Wenn Sie es nicht explizit selbst initialisieren, wird ein Kompilierungsfehler angezeigt.

Selbst wenn es sich um eine lokale Variable handelt, wird nur das ** Array automatisch initialisiert **.

Referenzseite http://www.booran.com/menu/java/format.html

C/C++#

Globale Variable

Globale Variablen werden mit Standardwerten initialisiert.

#include <stdio.h>

int g_hoge;    //Globale Variablen

int main(){
    int a;    //Lokale Variablen

    return 0;
}
Variablentyp Standardwert
int , short , long 0
float , double 0.0
char '\0'
bool false
Objektreferenz NULL

Selbst im Fall eines Arrays haben alle Elemente Standardwerte.

Lokale Variable

Lokale Variablen werden nicht automatisch initialisiert.

Im Gegensatz zu Java wird das Array lokaler Variablen auch nicht initialisiert.

Für Variablen mit "statisch" werden sogar lokale Variablen initialisiert.

Referenzseite http://edu.clipper.co.jp/pg-2-33.html

Ich bin mir bei Klassen- und Strukturvariablen nicht sicher, da sich ihr Verhalten abhängig vom Deklarationsspeicherort und der Erstellung einer Instanz ändert.

Obwohl es sich selbst initialisiert, ist es besser, es explizit selbst in Programmen zu initialisieren, die andere sehen.

Recommended Posts

Wann wird der Standardwert ohne explizite Initialisierung automatisch eingegeben?
Beim Zuweisen zu einem Array wird ein Nullwert eingegeben
[Swift] Ermittelt das Timing, wenn der Wert von textField geändert wird
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
[Rails] So lösen Sie das Problem, dass das Standardbild beim Bearbeiten überschrieben wird, ohne das Bild hochzuladen [Active Storage]
[Java small story] Überwachen Sie, wann der Liste ein Wert hinzugefügt wird
Wenn der Bean-Klassenname dupliziert wird
Initialisieren Sie das Ruby-Array mit 0 für Java, dh setzen Sie den Standardwert auf 0