Ich habe eine Klasse und in dieser Klasse habe ich diese:
//some code
private int[] data = new int[3];
//some code
Dann in meinem Konstruktor:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Wenn ich das mache, ist alles in Ordnung. Standarddatenwerte werden initialisiert, aber wenn ich dies stattdessen tue:
public Date(){
int[] data = {0,0,0};
}
Es sagt:
Local variable hides a field
Warum?
Wie kann ein Array im Konstruktor am besten initialisiert werden?
datadanach"//some code"hat einen Gültigkeitsbereich der gesamten Klasse. während die Variabledataim Konstruktor einen Bereich innerhalb des Konstruktors hat. und sobald der Konstruktor fertig ist, wird die Variable zerstört. Außerdemdataversteckt die Variable im Konstruktor die gleichnamige Variable in der Klasse. Dies rechtfertigt den FehlerLocal variable hides a field