39 votes

Variable finale statique en Java

Dupliquer possible :
attribut statique final privé vs attribut final privé

Quelle est la différence entre déclarer une variable comme

static final int x = 5;

ou

final int x = 5;

Si je veux seulement que la variable soit locale, et constante (ne peut pas être modifiée plus tard) ?

Merci. Merci.

38voto

Oh Chin Boon Points 7667

Le simple fait d'avoir final aura l'effet escompté.

final int x = 5;

...
x = 10; // this will cause a compilation error because x is final

Déclarer statique en fait une variable de classe, la rendant accessible en utilisant le nom de classe <ClassName>.x

6voto

Pavel Ryzhov Points 838

Dans la première instruction, vous définissez la variable qui est commune à tous les objets (champ statique de classe).

Dans la deuxième instruction, vous définissez une variable, qui appartient à chaque objet créé (beaucoup de copies).

Dans votre cas, vous devriez utiliser le premier.

3voto

mazaneicha Points 1653

Pour les types primitifs, la « statique finale » sera une déclaration appropriée pour déclarer une constante. Une variable finale non statique prend tout son sens lorsqu'il s'agit d'une référence constante à un objet. Dans ce cas, chaque instance peut contenir sa propre référence, comme indiqué dans JLS 4.5.4.

Voir la réponse de Pavel pour la bonne réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X