Lo so, è un argomento molto di base, quindi se si tratta di una domanda duplicata, si prega di fornire un riferimento.Ordine di inizializzazione in Java
Dire, c'è un codice seguente:
public class Point {
int x = 42;
int y = getX();
int getX() {
return x;
}
public static void main (String s[]) {
Point p = new Point();
System.out.println(p.x + "," + p.y);
}
}
Produce: 42,42
Ma se cambiamo l'ordine della comparsa delle variabili:
public class Point {
int y = getX();
int x = 42;
int getX() {
return x;
}
public static void main (String s[]) {
Point p = new Point();
System.out.println(p.x + "," + p.y);
}
}
E 'uscite: 42,0
Capisco che io Nel secondo caso la situazione può essere descritta come: "Va bene, non so quale sia il valore x restituito, ma c'è qualche valore". Quello che non capisco completamente è come x può essere visto qui senza essere visto insieme al suo valore. È una questione di tempo di compilazione e di esecuzione? Grazie in anticipo.
Verifica [GLS] (http://docs.oracle.com/javase/specs/ jls/se7/html/jls-4.html # jls-4.12.5) – assylias