it-swarm-eu.dev

Gültige Zeichen in einem Java-Klassennamen

Welche Zeichen sind in einem Java-Klassennamen gültig? Welche anderen Regeln regeln Java-Klassennamen (Java-Klassennamen dürfen beispielsweise nicht mit einer Zahl beginnen)?

64
Zach

Sie können fast jedes Zeichen haben, einschließlich der meisten Unicode-Zeichen! Die genaue Definition ist in der Java-Sprachspezifikation unter Abschnitt 3.8: Bezeichner .

Ein Bezeichner ist eine unbegrenzte Folge von Java-Buchstaben und Java-Ziffern, von denen der erste ein Java-Buchstabe sein muss. ...

Buchstaben und Ziffern können aus dem gesamten Unicode-Zeichensatz gezogen werden. Damit können Programmierer Bezeichner in ihren Programmen verwenden, die in ihrer Muttersprache geschrieben sind.

Ein Bezeichner darf nicht dieselbe Schreibweise (Unicode-Zeichenfolge) haben wie ein Schlüsselwort (§3.9), ein boolesches Literal (§3.10.3) oder das Null-Literal (§3.10.7) oder ein Fehler bei der Kompilierung.

Siehe diese Frage , ob Sie das tun sollen oder nicht.

54
Jason Cohen

Jede Programmiersprache hat eigene Regeln und Konventionen für die Arten von Namen, die Sie verwenden dürfen, und die Java-Programmiersprache unterscheidet sich nicht. Die Regeln und Konventionen zur Benennung Ihrer Variablen können wie folgt zusammengefasst werden:

  • Variablennamen unterscheiden zwischen Groß- und Kleinschreibung. Der Name einer Variablen kann ein beliebiger gesetzlicher Bezeichner sein - eine unbegrenzte Folge von Unicode-Buchstaben und -Ziffern, beginnend mit einem Buchstaben, dem Dollarzeichen "$" oder dem Unterstrich "_". Die Konvention ist jedoch, Ihre Variablennamen immer mit einem Buchstaben zu beginnen, nicht mit "$" oder "_". Darüber hinaus wird das Dollarzeichen normalerweise nicht verwendet. In einigen Situationen kann es vorkommen, dass automatisch generierte Namen das Dollarzeichen enthalten. Die Variablennamen sollten jedoch immer die Verwendung vermeiden. Eine ähnliche Konvention gibt es für den Unterstrich. Während es technisch zulässig ist, den Namen Ihrer Variablen mit "_" zu beginnen, wird von dieser Vorgehensweise abgeraten. Leerzeichen sind nicht zulässig.

  • Nachfolgende Zeichen können Buchstaben, Ziffern, Dollarzeichen oder Unterstriche sein. Konventionen (und der gesunde Menschenverstand) gelten auch für diese Regel. Verwenden Sie bei der Auswahl eines Namens für Ihre Variablen vollständige Wörter anstelle von kryptischen Abkürzungen. Dadurch wird Ihr Code leichter lesbar und verständlicher. In vielen Fällen wird Ihr Code auch selbstdokumentierend; Felder mit der Bezeichnung "Kadenz", "Geschwindigkeit" und "Zahnrad" sind beispielsweise viel intuitiver als abgekürzte Versionen wie s, c und g. Denken Sie auch daran, dass der von Ihnen gewählte Name kein Schlüsselwort oder reserviertes Word sein darf.

  • Wenn der von Ihnen gewählte Name nur aus einem Wort besteht, buchstabieren Sie dieses Wort in Kleinbuchstaben. Wenn es aus mehr als einem Wort besteht, den ersten Buchstaben jedes nachfolgenden Wortes groß schreiben. Die Namen gearRatio und currentGear sind Paradebeispiele dieser Konvention. Wenn Ihre Variable einen konstanten Wert speichert, z. B. static final int NUM_GEARS = 6, ändert sich die Konvention geringfügig. Dabei werden alle Buchstaben großgeschrieben und nachfolgende Wörter mit dem Unterstrich getrennt. In der Regel wird der Unterstrich nie anderswo verwendet. 

Aus dem offiziellen Java-Tutorial .

16
Ivan Bosnic

Neben den vorherigen Antworten ist es erwähnenswert, dass:

  1. Java lässt jedes Unicode-Währungssymbol in Symbolnamen zu, daher funktionieren alle folgenden:

$ var1 £ var2 € var3

Ich glaube, die Verwendung von Währungssymbolen stammt ursprünglich aus C/C++, wo vom Compiler vom Compiler hinzugefügte Variablen normalerweise mit '$' begonnen wurden. Ein naheliegendes Beispiel in Java sind die Namen von '.class'-Dateien für innere Klassen, die per Konvention das Format' Outer $ Inner.class 'haben.

  1. Viele C # - und C++ - Programmierer übernehmen die Konvention, ein "Ich" vor Schnittstellen zu platzieren (auch als reine virtuelle Klassen in C++ bezeichnet). Dies ist in Java nicht erforderlich und wird daher auch nicht ausgeführt, da das Schlüsselwort implements sehr deutlich macht, wenn etwas eine Schnittstelle ist.

Vergleichen Sie:

klasse Mitarbeiter: Öffentlich IPayable // C++

mit

mitarbeiter der Klasse: IPayable // C #

und 

klasse Employee implementiert Payable // Java

  1. Viele Projekte verwenden die Konvention, einen Unterstrich vor Feldnamen zu setzen, so dass sie leicht von lokalen Variablen und Parametern, z.

privater doppelter _Salary;

Eine winzige Minderheit setzt den Unterstrich nach dem Feldnamen, z.

privates Doppelgehalt_;

9
Garth Gilmour

Wie bereits von Jason Cohen festgestellt, definiert die Java-Sprachspezifikation, was eine rechtliche Kennung in Abschnitt 3.8 ist:

"Ein Bezeichner ist eine unbegrenzte Folge von Java-Buchstaben und Java-Ziffern, von denen die Zuerst ein Java-Buchstabe sein muss. [...] Ein" Java-Buchstabe "ist ein Zeichen, für das die Methode Character.isJavaIdentifierStart ( int) gibt true zurück. Ein 'Java-Buchstabe oder -Zahl' ist ein Zeichen, für das die Methode Character.isJavaIdentifierPart (int) true zurückgibt. "

Dies beantwortet hoffentlich Ihre zweite Frage. Bezüglich Ihrer ersten Frage; Ich wurde sowohl von Lehrern als auch (soweit ich mich erinnere) Java-Compilern beigebracht, dass ein Java-Klassenname ein Bezeichner sein sollte, der mit einem Großbuchstaben A-Z beginnt, aber ich kann keine verlässliche Quelle dazu finden. Beim Ausprobieren mit OpenJDK gibt es keine Warnungen, wenn Klassennamen mit Kleinbuchstaben oder sogar einem $ -Zeichen beginnen. Wenn Sie ein $ -sign verwenden, müssen Sie es jedoch beim Compilieren aus einer Bash-Shell mit einem Escape-Zeichen versehen.

4
EriF89

Ich möchte der Antwort von bosnic hinzufügen, dass ein gültiges Währungszeichen für eine Kennung in Java zulässig ist. Der Euro ist ebenso wie der Euro ein gesetzlicher Identifikator und auch der Euro. Ich kann jedoch nicht herausfinden, wie er seine Antwort bearbeiten soll, daher muss ich diese triviale Ergänzung posten.

2
MetroidFan2002

Welche anderen Regeln regeln Java-Klassennamen (Java-Klassennamen dürfen beispielsweise nicht mit einer Zahl beginnen)?

  • Java-Klassennamen beginnen normalerweise mit einem Großbuchstaben.
  • Java-Klassennamen dürfen nicht mit einer Zahl beginnen.
  • wenn der Klassenname mehrere Wörter enthält, beispielsweise "MyClassName", sollte jedes Wort mit einem Großbuchstaben beginnen. zB- "MyClassName". Diese Namenskonvention basiert auf CamelCase Type.
1
Deepak Kumar

Klassennamen sollten in UpperCamelCase Nomen sein, wobei der erste Buchstabe jedes Wortes groß geschrieben wird. Verwenden Sie ganze Wörter - vermeiden Sie Akronyme und Abkürzungen (es sei denn, die Abkürzung wird viel weiter verwendet als die Langform wie URL oder HTML) .. Die Namenskonventionen können hier gelesen werden:

http://www.Oracle.com/technetwork/Java/codeconventions-135099.html

0
Sachin Tiwari

Bezeichner werden für Klassennamen, Methodennamen und Variablennamen verwendet. Ein Bezeichner kann eine beliebige beschreibende Folge von Groß- und Kleinbuchstaben, Zahlen oder Unter- und Dollarzeichen sein. Sie dürfen nicht mit einer Zahl beginnen, damit sie nicht mit einem numerischen Literal konfundiert werden. Java unterscheidet wiederum zwischen Groß- und Kleinschreibung, daher ist VALUE ein anderer Identifier als Value . Einige Beispiele für gültige Bezeichner sind:

AvgTemp, zählen a4, $ test, this_is_ok

Ungültige Variablennamen sind:

2 Anzahl, Hochtemperatur, Nicht/OK

0
navneet kumar