134 votes

Quel est l'ordre raisonnable des modificateurs Java (abstract, final, public, static, etc.) ?

Quel est l'ordre raisonnable des modificateurs Java ?

  • abstrait
  • final
  • indigène
  • privé
  • protégé
  • public
  • statique
  • strictfp
  • synchronisé
  • transitoire
  • volatile

Mise à jour

J'ai modifié la formulation de recommandé a raisonnable afin d'apaiser les discussions, que l'ordre soit recommandé ou non.

145voto

FrVaBe Points 14559

El coutumier L'ordre d'utilisation des modificateurs est mentionné dans le document Spécification du langage Java (et non pas la spécification de la machine virtuelle Java), par exemple pour Modificateurs de classe vous trouverez la définition suivante (extrait) :

ClassModifiers:
    ClassModifier
    ClassModifiers ClassModifier

ClassModifier: one of
    Annotation public protected private
    abstract static final strictfp

[....]

Si deux ou plusieurs modificateurs de classe (distincts) apparaissent dans une déclaration de classe, il est d'usage, mais non obligatoire, qu'ils apparaissent dans un ordre conforme à celui indiqué ci-dessus dans la production pour ClassModifier. (petit texte en bas du paragraphe !)

Vous trouverez cette phrase à plusieurs autres endroits où l'usage des modificateurs est spécifié, par ex. aquí pour les modificateurs de champ.

Mise à jour : J'ai remplacé "spécifié/recommandé" par "habituel" pour que cette réponse soit acceptable. Tenez-en compte si vous lisez les commentaires ;-) (merci à @EJP de le préciser) - Néanmoins I serait recommander pour utiliser le coutumier l'ordre.

Google recommande également en utilisant l'ordre habituel mentionné dans la spécification Java.

public / protected / private 
abstract 
static 
final 
transient 
volatile 
synchronized 
native 
strictfp

Mise à jour : Il y a un nouveau " Directives de style Java "en place pour les projets de la communauté OpenJDK. Il y a également une recommandation pour une ordre de modification et comprend également la nouvelle par défaut de Java 8.

public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp

32voto

Micha Wiedenmann Points 3357

Il est raisonnable d'utiliser l'ordre selon le Spécification de la machine virtuelle Java, tableau 4.4

  • public
  • protégé
  • privé
  • abstrait
  • par défaut
  • statique
  • final
  • transitoire
  • volatile
  • synchronisé
  • indigène
  • strictfp

7voto

Sur la base de leurs valeurs int.

Modificateur (plate-forme Java SE 8 )

  • 1 : public
  • 2 : privé
  • 4 : protégé
  • 8 : statique
  • 16 : final
  • 32 : synchronisé
  • 64 : volatile
  • 128 : transitoire
  • 256 : natif
  • 512 : interface
  • 1024 : abstrait
  • 2048 : strictfp

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