Gültige Zeichen in einem Java-classnnamen

Welche Zeichen sind in einem Javaclassnnamen gültig? Welche anderen Regeln gelten für Java-classnnamen (z. B. können Java-classnnamen nicht mit einer Zahl beginnen)?

Solutions Collecting From Web of "Gültige Zeichen in einem Java-classnnamen"

Sie können fast jeden Charakter haben, einschließlich der meisten Unicode-Zeichen! Die genaue Definition finden Sie in der Java-Sprachspezifikation unter Abschnitt 3.8: Identifikatoren .

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

Buchstaben und Ziffern können aus dem gesamten Unicode-Zeichensatz gezogen werden. Dies ermöglicht es Programmierern, Kennungen in ihren Programmen zu verwenden, die in ihrer Muttersprache geschrieben sind.

Ein Bezeichner darf nicht die gleiche Schreibweise (Unicode-Zeichenfolge) wie ein Schlüsselwort (§3.9), ein boolesches Literal (§3.10.3) oder das Null-Literal (§3.10.7) aufweisen oder es tritt ein Fehler bei der Kompilierung auf.

Sehen Sie sich jedoch diese Frage an, ob Sie das tun sollten oder nicht.

Jede Programmiersprache hat ihre eigenen Regeln und Konventionen für die Arten von Namen, die Sie verwenden dürfen, und die Programmiersprache Java ist nicht anders. Die Regeln und Konventionen für die Benennung Ihrer Variablen können wie folgt zusammengefasst werden:

  • Variablennamen unterscheiden zwischen Groß- und Kleinschreibung. Der Name einer Variablen kann ein beliebiger rechtlicher Bezeichner sein – eine Folge von Unicode-Buchstaben und -Ziffern unbegrenzter Länge, beginnend mit einem Buchstaben, dem Dollarzeichen “$” oder dem Unterstrich “_”. Die Konvention besteht jedoch darin, dass Sie Ihre Variablennamen immer mit einem Buchstaben beginnen, nicht mit “$” oder “_”. Außerdem wird das Dollarzeichenzeichen per Konvention überhaupt nicht verwendet. Möglicherweise finden Sie Situationen, in denen automatisch generierte Namen das Dollarzeichen enthalten, aber Ihre Variablennamen sollten es immer vermeiden, sie zu verwenden. Eine ähnliche Konvention existiert für das Unterstreichungszeichen; Während es technisch zulässig ist, den Namen Ihrer Variablen mit “_” zu beginnen, wird von dieser Vorgehensweise abgeraten. Leerzeichen sind nicht erlaubt.

  • Nachfolgende Zeichen können Buchstaben, Ziffern, Dollarzeichen oder Unterstriche sein. Konventionen (und gesunder Menschenverstand) gelten auch für diese Regel. Verwenden Sie bei der Auswahl eines Namens für Ihre Variablen statt kryptischer Abkürzungen vollständige Wörter. Dadurch wird Ihr Code leichter zu lesen und zu verstehen. In vielen Fällen wird Ihr Code auch selbstdokumentieren. Die Felder cadence, speed und gear sind beispielsweise intuitiver als abgekürzte Versionen wie s, c und g. Beachten Sie auch, dass der von Ihnen gewählte Name kein Schlüsselwort oder reserviertes Wort sein darf.

  • Wenn der gewählte Name nur aus einem Wort besteht, buchstabieren Sie dieses Wort in Kleinbuchstaben. Wenn es aus mehr als einem Wort besteht, wird der erste Buchstabe jedes nachfolgenden Wortes groß geschrieben. Die Namen gearRatio und currentGear sind Paradebeispiele für diese Konvention. Wenn Ihre Variable einen konstanten Wert speichert, z. B. static final int NUM_GEARS = 6 , ändert sich die Konvention geringfügig, indem jeder Buchstabe groß geschrieben und nachfolgende Wörter durch den Unterstrich getrennt werden. Per Konvention wird der Unterstrich niemals an anderer Stelle verwendet.

Aus dem offiziellen Java-Tutorial .

Nach früheren Antworten ist es erwähnenswert:

  1. Java lässt jedes Unicode-Währungssymbol in Symbolnamen zu, so dass Folgendes funktioniert:

$ var1 £ var2 € var3

Ich glaube, dass die Verwendung von Währungssymbolen ihren Ursprung in C / C ++ hat, wo Variablen, die vom Compiler Ihrem Code hinzugefügt wurden, konventionell mit ‘$’ beginnen. Ein offensichtliches Beispiel in Java sind die Namen von ‘.class’ Dateien für innere classn, die per Konvention das Format ‘Outer $ Inner.class’ haben.

  1. Viele C # – und C ++ – Programmierer verwenden die Konvention, “I” vor Schnittstellen zu platzieren (in C ++ reine virtuelle classn). Dies ist in Java nicht erforderlich und daher auch nicht erforderlich, da das implements-Schlüsselwort sehr deutlich macht, wenn etwas eine Schnittstelle ist.

Vergleichen:

class Mitarbeiter: public IPayable // C ++

mit

class Mitarbeiter: IPayable // C #

und

class Mitarbeiter implementiert Payable // Java

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

privates doppeltes _salary;

Eine kleine Minderheit plazieren den Unterstrich nach dem Feldnamen zB

privates Doppelgehalt_;

Wie bereits von Jason Cohen erklärt, definiert die Java Language Specification, was eine rechtliche Kennung in Abschnitt 3.8 ist:

“Ein Bezeichner ist eine unbegrenzte Folge von Java-Buchstaben und Java-Ziffern, von denen die erste ein Java-Buchstabe sein muss. […] Ein ‘Java-Buchstabe’ ist ein Zeichen, für das die Methode Character.isJavaIdentifierStart (int) zurückgibt true. Ein ‘Java letter or digit’ ist ein Zeichen, für das die Methode Character.isJavaIdentifierPart (int) true zurückgibt. ”

Dies beantwortet hoffentlich deine zweite Frage. Bezüglich deiner ersten Frage; Ich habe sowohl von Lehrern als auch (soweit ich mich erinnern kann) Java-Compilern beigebracht, dass ein Java-classnname ein Bezeichner sein sollte, der mit einem Großbuchstaben AZ beginnt, aber ich kann keine zuverlässige Quelle dazu finden. Beim Ausprobieren mit OpenJDK gibt es keine Warnungen beim Start von classnnamen mit Kleinbuchstaben oder gar einem $ -Zeichen. Wenn Sie ein $ -Zeichen verwenden, müssen Sie es jedoch entschlüsseln, wenn Sie es aus einer Bash-Shell kompilieren.

Ich möchte zur Antwort von Bosnic hinzufügen, dass jedes gültige Währungszeichen für einen Bezeichner in Java legal ist. th € is ist ein legaler Bezeichner, wie € this, und € auch. Ich kann jedoch nicht herausfinden, wie ich seine Antwort bearbeiten soll, daher muss ich diese triviale Ergänzung posten.

Welche anderen Regeln gelten für Java-classnnamen (z. B. können Java-classnnamen nicht mit einer Zahl beginnen)?

  • Java-classnnamen beginnen normalerweise mit einem Großbuchstaben.
  • Java-classnnamen dürfen nicht mit einer Zahl beginnen.
  • Wenn im classnnamen mehrere Wörter wie “MyClassName” vorkommen, sollte jedes Wort mit einem Großbuchstaben beginnen. zB- “MyClassName”. Diese Namenskonvention basiert auf CamelCase Type.

classnnamen sollten Substantive in UpperCamelCase 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 ist weit verbreiteter als die lange Form wie URL oder HTML). Die Namenskonventionen können hier gelesen werden:

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

Bezeichner werden für classnnamen, Methodennamen und Variablennamen verwendet. Ein Bezeichner kann eine beschreibende Folge von Groß- und Kleinbuchstaben, Zahlen oder die Unterstrich- und Dollarzeichen sein. Sie dürfen nicht mit einer Zahl beginnen, damit sie nicht mit einem numerischen Literal konfes- siert werden. Java unterscheidet wieder zwischen Groß- und Kleinschreibung, daher ist VALUE eine andere Kennung als Value. Einige Beispiele für gültige Bezeichner sind:

AvgTemp, Zählung a4, $ test, this_is_ok

Ungültige Variablennamen umfassen:

2count, Hochtemperatur, nicht / ok