-
Un attribut d'instance est accessible uniquement lorsqu'une instance est créée.
-
Un attribut de classe est accessible même si aucune instance de la classe n'a été créée.
-
Un attribut de classe est déclaré en utilisant le mot clé
static
.
class Test1 {
int var1 = 1; // attribut d'instance
static int var2 = 1; // attribut de classe
public void doSomeThing() {
Integer localVar1;
// Accès aux attributs en utilisant une référence d'instance
localVar1 = (new Test1()).var1; // OK
localVar1 = (new Test1()).var2; // OK - Avertissement : "The static field Test1.var2 should be accessed in a static way"
// Accès aux attributs en utilisant le nom de la classe
localVar1 = Test1.var1; // compiler error: "Cannot make a static reference to the non-static field Test1.var1"
localVar1 = Test1.var2; // OK
}
}