Caractères valides dans un nom de classe Java


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)?

Author: netjeff, 2008-09-15

8 answers

Vous pouvez avoir presque n'importe quel caractère, y compris la plupart des caractères Unicode! La définition exacte se trouve dans la spécification du langage Java sous section 3.8: Identificateurs.

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

Les lettres et les chiffres peuvent être tirés de l'ensemble des caractères Unicode, ... Cela permet aux programmeurs d'utiliser les identifiants leurs programmes sont é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), ou une erreur de compilation se produit.

Cependant, voir cette question pour savoir si vous devez ou non faire.

 52
Author: Jason Cohen, 2018-05-09 09:32:03

Chaque langage de programmation a son propre ensemble de règles et de conventions pour les types de noms que vous êtes autorisé à utiliser, et 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 longueur illimitée de lettres et de chiffres Unicode, commençant par une lettre, le signe dollar"$", ou le caractère de soulignement "_". La convention, cependant, est de toujours commencer vos noms de variables par une lettre, pas " _ "ou"_". De plus, le caractère de signe dollar, par convention, n'est jamais utilisé du tout. Vous pouvez trouver certaines situations où les noms générés automatiquement contiendront le signe dollar, mais vos noms de variables doivent 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 blancs ne sont pas autorisés.

  • Les caractères suivants peuvent être des lettres, des chiffres, des signes de dollar ou des caractères de soulignement. Les conventions (et le bon sens) s'appliquent également à cette règle. Lorsque vous choisissez un nom pour vos variables, utilisez des mots complets au lieu d'abréviations cryptiques. Cela rendra votre code plus facile à lire et à comprendre. Dans de nombreux cas, cela rendra également votre code auto-documenté; les champs nommés cadence, vitesse et engrenage, par exemple, sont beaucoup plus intuitifs que les versions abrégées, telles que s, c et g. Gardez également à l'esprit 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, sort ce mot en minuscules. S'il se compose de 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, mettre chaque lettre en majuscule et séparer les mots suivants avec le caractère de soulignement. Par convention, le caractère de soulignement n'est jamais utilisé ailleurs.

De le tutoriel Java officiel.

 16
Author: Ivan Bosnic, 2018-07-27 05:30:30

Suite aux réponses précédentes, il convient de noter que:

  1. Java autorise n'importe quel symbole de devise Unicode dans les noms de symboles, donc ce qui suit fonctionnera:

Var var1 £var2 € var3

Je crois que l'utilisation des symboles monétaires provient de C/C++, où les variables ajoutées à votre code par le compilateur ont commencé classiquement par '$'. Un exemple évident en Java est les noms de '.class ' fichiers pour les classes internes, qui par convention ont le format Extérieure$Intérieure.classe'

  1. De nombreux programmeurs C# et C++ adoptent la convention de placer " I " devant les interfaces (aka classes virtuelles pures en C++). Ce n'est pas nécessaire, et donc pas fait, en Java car le mot clé implements le rend très clair quand quelque chose est une interface.

Comparer:

Employé de classe: public IPayable / / C++

Avec

Employé de classe: IPayable / / C #

Et

Classe L'employé met en œuvre à Payer //Java

  1. De nombreux projets utilisent la convention de placer un trait de soulignement devant les noms de champs, de sorte qu'ils peuvent facilement être distingués des variables et paramètres locaux, par exemple

Double _salaire privé;

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

Privé double salary_;

 9
Author: Garth Gilmour, 2008-09-15 19:49:12

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

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

Ceci espérons que les réponses à votre deuxième question. En ce qui concerne votre première question; J'ai appris à la fois par les enseignants et (pour autant que je me souvienne) les compilateurs Java qu'un nom de classe Java devrait être un identifiant qui commence par une lettre majuscule A-Z, mais je ne trouve aucune source fiable à ce sujet. Lorsque vous l'essayez avec OpenJDK, il n'y a aucun avertissement lorsque vous commencez les noms de classe avec des lettres minuscules ou même un signe$ -. Lorsque vous utilisez un signe$ -, vous devez l'échapper si vous compilez à partir d'un shell bash, cependant.

 4
Author: EriF89, 2012-06-26 14:30:16

Je voudrais ajouter à la réponse de bosnic que tout caractère de devise valide est légal pour un identifiant en Java. th€est un identificateur, comme est €et € ainsi. Cependant, je ne peux pas comprendre comment modifier sa réponse, donc je suis obligé de poster cette triviale plus.

 2
Author: MetroidFan2002, 2008-09-15 19:27:18

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 comme "MyClassName", chaque mot doit commencer par une lettre majuscule. par exemple- "MyClassName".Cette convention de nommage est basée sur le type CamelCase .
 1
Author: Deepak Kumar, 2017-02-18 19:46:28

Les noms de classe doivent être des noms en majuscules, avec la première lettre de chaque mot en majuscule. Utilisez des mots entiers-évitez les acronymes et les abréviations (sauf si l'abréviation est beaucoup plus utilisée que le formulaire long, comme URL ou HTML). Les conventions de nommage peuvent être lues ici:

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

 0
Author: Sachin Tiwari, 2015-01-18 15:55:09

Les identifiants sont utilisés pour les noms de classes, les noms de méthodes et les noms de variables. Un identificateur peut être une séquence descriptive de lettres majuscules et minuscules, de chiffres ou de caractères de sous-score et de signe dollar. Ils ne doivent pas commencer par un nombre, de peur d'être fusionnés avec un littéral numérique. Encore une fois, Java est sensible à la casse, donc VALUE est un differentidentifier que Value. Voici quelques exemples d'identifiants valides:

AvgTemp, compte a4, test test, this_is_ok

Noms de variables non valides inclure:

2count, haute température, Pas / ok

 0
Author: navneet kumar, 2016-09-07 13:25:38