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)?
72
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)?
class Identifier
. Dies ist viel älter, aber das andere ist viel besser und allgemeiner: Gleiches gilt für Methoden, Variablen usw.Antworten:
Sie können fast jedes Zeichen haben, einschließlich der meisten Unicode-Zeichen! Die genaue Definition finden Sie in der Java-Sprachspezifikation unter Abschnitt 3.8: Bezeichner .
In dieser Frage erfahren Sie jedoch, ob Sie dies tun sollten oder nicht.
quelle
π
als Variablenname für pi verwenden.Aus dem offiziellen Java Tutorial .
quelle
Nach früheren Antworten ist Folgendes zu beachten:
Ich glaube, die Verwendung von Währungssymbolen stammt aus C / C ++, wo Variablen, die der Compiler Ihrem Code hinzugefügt hat, herkömmlicherweise mit '$' beginnen. Ein offensichtliches Beispiel in Java sind die Namen von '.class'-Dateien für innere Klassen, die standardmäßig das Format' Outer $ Inner.class 'haben.
Vergleichen Sie:
mit
und
Eine winzige Minderheit setzt den Unterstrich nach dem Feldnamen, z
quelle
Wie bereits von Jason Cohen angegeben, 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 der 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-Buchstabe oder eine Ziffer' ist ein Zeichen, für das die Methode Character.isJavaIdentifierPart (int) true zurückgibt. "
Dies beantwortet hoffentlich Ihre zweite Frage. In Bezug auf Ihre erste Frage; Ich habe sowohl von Lehrern als auch (soweit ich mich erinnern kann) Java-Compilern gelernt, dass ein Java-Klassenname eine Kennung sein sollte, die mit einem Großbuchstaben AZ beginnt, aber ich kann keine verlässliche Quelle dafür finden. Beim Ausprobieren mit OpenJDK gibt es keine Warnungen, wenn Klassennamen mit Kleinbuchstaben oder sogar einem $ -Zeichen beginnen. Wenn Sie ein $ -Zeichen verwenden, müssen Sie es jedoch maskieren, wenn Sie aus einer Bash-Shell kompilieren.
quelle
Ich möchte der Antwort von bosnic hinzufügen, dass jedes gültige Währungszeichen für eine Kennung in Java zulässig ist. Dies ist eine rechtliche Kennung, ebenso wie dies und auch. Ich kann jedoch nicht herausfinden, wie ich seine Antwort bearbeiten soll, daher bin ich gezwungen, diesen trivialen Zusatz zu veröffentlichen.
quelle
quelle
Klassennamen sollten in UpperCamelCase Substantive 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 häufiger verwendet als die Langform wie URL oder HTML). Die Namenskonventionen können hier nachgelesen werden:
http://www.oracle.com/technetwork/java/codeconventions-135099.html
quelle
Bezeichner werden für Klassennamen, Methodennamen und Variablennamen verwendet. Ein Bezeichner kann eine beliebige beschreibende Folge von Groß- und Kleinbuchstaben, Zahlen oder den Unterstrichen und Dollarzeichen sein. Sie dürfen nicht mit einer Zahl beginnen, damit sie nicht mit einem numerischen Literal verwechselt werden. Auch hier unterscheidet Java zwischen Groß- und Kleinschreibung, sodass VALUE eine andere Kennung als Value ist. Einige Beispiele für gültige Bezeichner sind:
AvgTemp, zähle a4, $ test, this_is_ok
Ungültige Variablennamen umfassen:
2count, Hochtemperatur, Nicht / ok
quelle