Question

Quels caractères sont valides dans un nom de classe Java? Quelles autres règles régissent les noms de classe Java (par exemple, les noms de classe Java ne peuvent pas commencer par un nombre)?

Était-ce utile?

La solution

Vous pouvez avoir presque tous les caractères, y compris la plupart des caractères Unicode! La définition exacte est dans spécification du langage Java. sous la section 3.8: Identifiants .

  

Un identifiant est une séquence illimitée de lettres Java et de chiffres Java , dont le premier doit être Java lettre . ...

     

Des lettres et des chiffres peuvent être tirés de l'ensemble du jeu de caractères Unicode, ... Cela permet aux programmeurs d'utiliser des identificateurs dans leurs programmes écrits dans leur langue maternelle.

     

Un identifiant ne peut pas avoir la même orthographe (séquence de caractères Unicode) qu'un mot clé (§3.9), un littéral booléen (§3.10.3) ou le littéral nul (§3.10.7), sinon une erreur de compilation survient .

Toutefois, consultez cette question pour savoir si vous devriez ou non faire ça.

Autres conseils

  

Chaque langage de programmation possède son propre ensemble de règles et de conventions pour les types de noms que vous êtes autorisé à utiliser. Le langage de programmation Java n'est pas différent. Les règles et conventions pour nommer vos variables peuvent être résumées comme suit:

     
      
  • Les noms de variables sont sensibles à la casse. Le nom d'une variable peut être n'importe quel identifiant légal - une séquence de lettres et de chiffres Unicode de longueur illimitée, commençant par une lettre, le signe dollar "$" ou le caractère de soulignement "_". Cependant, la convention est de toujours commencer vos noms de variable par une lettre et non par "$". ou "_". De plus, le caractère de signe dollar, par convention, n’est jamais utilisé. Vous rencontrerez peut-être des situations dans lesquelles les noms générés automatiquement contiendront le signe dollar, mais les noms de vos variables devraient toujours éviter de l’utiliser. Une convention similaire existe pour le caractère de soulignement; Bien qu'il soit techniquement légal de commencer le nom de votre variable par "_", cette pratique est déconseillée. Les espaces ne sont pas autorisés.

  •   
  • Les caractères suivants peuvent être des lettres, des chiffres, des signes dollar ou des caractères de soulignement. Les conventions (et le sens commun) s'appliquent également à cette règle. Lorsque vous choisissez un nom pour vos variables, utilisez des mots entiers plutôt que des abréviations cryptiques. Cela rendra votre code plus facile à lire et à comprendre. Dans de nombreux cas, votre code s'auto-documentera également; Les champs nommés cadence, vitesse et vitesse, par exemple, sont beaucoup plus intuitifs que les versions abrégées, telles que s, c et g. Notez également que le nom que vous choisissez ne doit pas être un mot clé ou un mot réservé.

  •   
  • Si le nom que vous choisissez se compose d'un seul mot, épelez ce mot en lettres minuscules. S'il contient plus d'un mot, mettez en majuscule la première lettre de chaque mot suivant. Les noms gearRatio et currentGear sont d'excellents exemples de cette convention. Si votre variable stocke une valeur constante, telle que static final int NUM_GEARS = 6 , la convention change légèrement, mettant en majuscule chaque lettre et séparant les mots suivants avec le trait de soulignement. Par convention, le caractère de soulignement n'est jamais utilisé ailleurs.

  •   

De didacticiel Java officiel .

Suite aux réponses précédentes, il est intéressant de noter que:

  1. Java autorise tous les symboles monétaires Unicode dans les noms de symbole. Ainsi, tous les éléments suivants fonctionneront:
  

$ var1   £ var2   € var3

Je pense que l'utilisation des symboles monétaires a son origine dans C / C ++, les variables ajoutées à votre code par le compilateur commençant classiquement par '$'. Un exemple évident en Java est le nom des fichiers '.class' pour les classes internes, qui, par convention, ont le format 'Outer $ Inner.class'

  1. De nombreux programmeurs C # et C ++ adoptent la convention de placer "I" devant les interfaces (classes virtuelles pures en C ++). Ceci n’est pas obligatoire, et donc pas fait, en Java car le mot-clé implément le dit très clairement quand quelque chose est une interface.

Comparez:

  

class Employee: public IPayable // C ++

avec

  

class Employee: IPayable // C #

et

  

La classe Employee implémente Payable // Java

  1. De nombreux projets utilisent la convention qui consiste à placer un tiret de soulignement devant les noms de champs, afin de pouvoir les distinguer facilement des variables et paramètres locaux, par exemple.
  

private double _salary;

Une petite minorité place le trait de soulignement après le nom du champ, par exemple.

  

double salaire privé _;

Comme l'a déjà indiqué Jason Cohen, la spécification du langage Java définit ce qu'est un identificateur légal dans la section 3.8:

"Un identifiant est une séquence de lettres et de chiffres Java de longueur illimitée, le Le premier doit être une lettre Java. [...] Une 'lettre Java' est un caractère pour lequel la méthode Character.isJavaIdentifierStart (int) renvoie true. Un 'Java Letter-or-digit' est un caractère pour lequel la méthode Character.isJavaIdentifierPart (int) renvoie true. "

Cela, espérons-le, répond à votre deuxième question. Concernant votre première question Des professeurs et des compilateurs Java (autant que je puisse m'en souvenir) m'ont appris qu'un nom de classe Java devrait être un identifiant commençant par une lettre majuscule, mais je ne trouve aucune source fiable à ce sujet. Lors de l’essai avec OpenJDK, aucun avertissement n’est signalé lors du début des noms de classe avec des lettres minuscules ou même avec un signe-$. Lorsque vous utilisez un signe-$, vous devez l’échapper si vous compilez à partir d’un shell bash.

Je voudrais ajouter à la réponse de bosnic que tout caractère monétaire valide est légal pour un identifiant en Java. th € est un identifiant légal, de même que € this, et € aussi. Cependant, je ne sais pas comment modifier sa réponse, je suis donc obligé de publier cet ajout trivial.

  

Quelles autres règles régissent les noms de classe Java (par exemple, les noms de classe Java ne peuvent pas commencer par un nombre)?

  • Les noms de classe Java commencent généralement par une lettre majuscule.
  • Les noms de classe Java ne peuvent pas commencer par un nombre.
  • s'il y a plusieurs mots dans le nom de la classe, tels que " MyClassName " chaque mot doit commencer par une lettre majuscule. Exemple: "MyClassName" .Cette convention de nommage est basée sur le type CamelCase .

Les noms de classe doivent être des noms dans UpperCamelCase, avec la première lettre de chaque mot en majuscule. Utilisez des mots entiers & # 8212; évitez les acronymes et les abréviations (à moins que l’abréviation soit beaucoup plus utilisée que la forme longue, telle que URL ou HTML). Les conventions de dénomination peuvent être lues ici:

http://www.oracle.com/technetwork/java/codeconventions- 135099.html

Les identifiants sont utilisés pour les noms de classe, les noms de méthodes et les noms de variables. Un identifiant peut être n’importe quelle séquence descriptive de lettres majuscules et minuscules, de chiffres ou de caractères de soulignement et de signe dollar. Ils ne doivent pas commencer par un nombre, de peur de se confondre avec un littéral numérique. Encore une fois, Java est sensible à la casse, donc VALUE est un identifiant différent de Value. Voici quelques exemples d'identificateurs valides:

AvgTemp, compte a4, $ test, this_is_ok

Les noms de variable non valides incluent:

2count, haute température, pas / ok

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top