我已经看到很多代码都有声明,例如Class clazz
,它来自哪里?这是某种约定吗?我认为'clazz'甚至不是一个英文单词,根本没有任何意义,那么多的程序员又怎能巧称一个错误的名字呢?
我已经看到很多代码都有声明,例如Class clazz
,它来自哪里?这是某种约定吗?我认为'clazz'甚至不是一个英文单词,根本没有任何意义,那么多的程序员又怎能巧称一个错误的名字呢?
Answers:
clazz
从JDK 1.0开始,在Java中已使用Java代替保留字“ class”。“ class”是您想要的,但是缩写或插入垃圾(“ a”,“ the”,“ _”等)会降低清晰度。clazz
只是说课。“国际”英语使用者(同时阅读英语和美国英语的人)习惯于对“ s”和“ z”进行转置。
由于Java从一开始就公开了源代码和适当的文化,因此有价值的Java代码和教程采用了相同的约定。这是Java生态系统的一大优点,我认为这是其成功的重要组成部分。
Foo
在类范围,并确定foo
在局部变量的作用域应该是合法的,但局部范围内的类范围的变量的所有引用应要求this.Foo
。这样的规则会...
someThing
在某些地方拼写标识符,并且sOmEtHiNg
在其他人。
fnord
,一个fnord
大写字母或无用的字词,而是调用了一个称为的方法和一个名为的字段。我认为这足以作为反例。
因为他们不能使用他们想要使用的单词class
。它是保留的。
这仅仅是因为'class'是保留关键字,因此Class class
是不允许的。因此,您会看到Class clazz
或Class cls
。
Class
因为在任何给定的项目中都有太多的类,因此调用一个类该类似乎毫无意义。我也想不出一个理由来称呼VARIABLE class
...
ClassInformation
,或ClassMetadata
类似的东西。每个类都是一个类,但是您不能全部命名它们,而是Class
通过它们的主要功能命名它们。
这取决于实际的编译器及其区分令牌在上下文中的含义的能力。但是,在这种特殊情况下,编译器无法区分令牌class
在不同上下文中的含义。这是一条严格的规则class
,无论上下文如何,该规则都用于表示类的声明,因此,它是保留字。这是一样简单和低级的。
如果您感到被迫,可以编写自己的Java编译器以包含一个上下文规则,该规则将允许您将其class
用作变量名。虽然我认为最好还是花点时间使用clazz
或klass
-可能对您的健康也有好处。
Java不具有允许您使用关键字作为标识符的功能,这与带有@
前缀(例如,@class
是有效的标识符)的C#不同。
class
并且$class
在JVM中都是有效(但不同)的标识符。您无法在可转换为"class"
VM 的Java源文件中编写标识符。