Ich habe viele Codes gesehen, die eine Deklaration haben wie Class clazz
, woher kommt diese? Ist das eine Art Konvention? Ich denke, 'clazz' ist nicht einmal ein englisches Wort, hat überhaupt keine Bedeutung, wie können so viele Programmierer zufällig einen falschen Namen benennen?
java
naming-conventions
Sawyer
quelle
quelle
сlass
Dinkel mit Kyrillischс
zu verwenden.Antworten:
clazz
wird in Java seit JDK 1.0 anstelle des reservierten Wortes "Klasse" verwendet. "Klasse" ist das, was Sie wollen, aber das Abkürzen oder Einfügen von Junk ("a", "the", "_" usw.) verringert die Klarheit.clazz
sagt nur Klasse. "Internationale" englische Sprecher (die sowohl britisches als auch amerikanisches Englisch lesen) sind es gewohnt, 's' und 'z' zu transponieren.Da Java von Anfang an die Quelle und eine geeignete Kultur offengelegt hat, greifen lohnender Java-Code und Tutorials dieselben Konventionen auf. Das ist eines der großartigen Dinge am Java-Ökosystem, das meiner Meinung nach ein wichtiger Teil seines Erfolgs war.
quelle
Foo
Definition im Klassenbereich undfoo
im Bereich der lokalen Variablen sollte zulässig sein, aber alle Verweise auf die Variable im Klassenbereich innerhalb des Bereichs der lokalen Variablen sollten erforderlich seinthis.Foo
. Eine solche Regel würde ...someThing
einigen Stellen und zuzulassensOmEtHiNg
in anderen.fnord
und einem Feld, dasfnord
ohne Probleme, Groß- oder Kleinschreibung oder Unsinnswörter aufgerufen wird . Ich denke, das wird als Gegenbeispiel ausreichen.Weil sie das Wort, das sie verwenden möchten, nicht verwenden können
class
. Es ist reserviert.quelle
Dies liegt einfach daran, dass 'class' ein reserviertes Schlüsselwort ist und daher
Class class
nicht zulässig ist. Deshalb wirst du sehenClass clazz
oderClass cls
.quelle
Class
da es in einem bestimmten Projekt so viele Klassen gibt, dass es irgendwie sinnlos erscheint, eine Klasse DIE Klasse zu nennen. Ich kann mir auch keinen Grundclass
ClassInformation
, oderClassMetadata
oder etwas ähnliches. Jede Klasse ist eine Klasse, aber Sie benennen sie nicht alle, sondernClass
nach ihrer Hauptfunktion.Es kommt auf den tatsächlichen Compiler und seine Fähigkeit an, zu unterscheiden, was ein Token in seinem Kontext bedeutet. Doch in diesem speziellen Fall ist es die Compiler Unfähigkeit zu unterscheiden , was die Token -
class
Mittel in einem anderen Kontext. Es ist eine feste Regelclass
, die unabhängig von ihrem Kontext verwendet wird, um die Deklaration einer Klasse zu bezeichnen, und als solche ist sie ein reserviertes Wort. Das ist so einfach und so niedrig wie es nur geht.Wenn Sie sich gezwungen fühlen, können Sie Ihren eigenen Java-Compiler schreiben, der eine Kontextregel enthält, mit der Sie ihn
class
als Variablennamen verwenden können. Obwohl ich denke, es wäre weitaus besser, Ihre Zeit zu nutzen, um sie nur zu nutzen,clazz
oderklass
- es wäre wahrscheinlich auch gut für Ihre Gesundheit.quelle
Ich habe es zuerst bei Josh Blochs Puzzlern gesehen. Aber ich bin mir ziemlich sicher, dass es viel früher von anderen Entwicklern verwendet wurde. Josh Bloch hat es gerade berühmter gemacht.
quelle
Java verfügt nicht über eine Funktion, mit der Sie ein Schlüsselwort als Bezeichner verwenden können, im Gegensatz zu C # mit seinem
@
Präfix (z. B.@class
ist ein gültiger Bezeichner).quelle
class
und$class
sind beide gültige (aber unterschiedliche) Bezeichner in der JVM. Es gibt keine Kennung, die Sie in eine Java-Quelldatei schreiben können, die"class"
in die VM übersetzt wird.Es ist nur ein englisches Wort, das durch das Schlüsselwort Class Keyword ersetzt wird (äquavalent), damit die Leute verstehen, dass es sich um eine Klasse handelt. und es ist fast die Lesbarkeit des Codes zu verbessern
Daran ist nichts Großes beteiligt
quelle
Deklaration
Class clazz
ist in der Java-Welt beliebt, kann jedoch für Neulinge und Rechtschreibprüfer unangenehm sein. Ich habe einige Leute sagen hören, dass es nach dem Prinzip des geringsten Erstaunens vermieden werden sollte .Da man sagen kann, dass ein
Class
Objekt einen Typ darstellt , deklariere ich persönlich lieber solche Variablen wieClass type
.quelle
Wir verwenden clazz, weil class ein Typheader ist. Zum Beispiel verwenden Sie hier Klasse:
und hier:
Daher müssen wir leider alternative Namen wie clazz verwenden.
quelle
Einfach gesagt,
class
hat Klasse,clazz
die nicht.quelle