Ciao a tutti! Sono nuovo nel forum e ho bisogno di capire un piccolo codice scritto in Java.

Dato il seguente codice:

public class Esercizio{
public static int x; public final int [] y = new int[3];

public Esercizio(int x, int y0, int y1, int y2){
Esercizio.x = x; this.y[0]=y0; this.y[1]=y1; this.y[2]=y2;
}

public static void main(String[] args){
int a = 0;
Esercizio[] q = new Esercizio[3];
q[0] = new Esercizio(0, 10-a, 6-a, 5-a);
q[1] = new Esercizio(a, 4, 8, 10);
q[2] = new Esercizio(2-a, a, a+1, a+2);
try { System.out.println(q[a].y[x]); }
catch (Exception e) { System.out.println("No!"); }

Perchè stampa il valore 5? Al di là dell'output, non riesco a capire il valore che prende la variabile statica x: qualcuno me lo può spiegare?

Grazie in anticipo!