我见过很多代码都有Class clazz
这样的声明,这是源于哪里?这是某种惯例吗?我认为'clazz'甚至不是英文单词,根本没有任何意义,这么多程序员怎么会巧妙地命名错误的名字呢?
答案 0 :(得分:154)
clazz
已用于代替保留字“class”。 “class”是你想要的,但缩写或插入垃圾(“a”,“the”,“_”等)会降低清晰度。 clazz
只是说课。 “国际”英语使用者(英语和美语阅读者)习惯于转置“s”和“z”。
由于Java从一开始就已经公开了源代码和合适的文化,因此有价值的Java代码和教程会采用相同的约定。这是Java生态系统的一大优势,我认为这是其成功的重要组成部分。
答案 1 :(得分:65)
因为他们不能使用他们想要使用的词,即'class'。这是保留的。
答案 2 :(得分:16)
这只是因为'class'是保留关键字,因此不允许Class class
。因此,您会看到Class clazz
或Class cls
。
答案 3 :(得分:7)
它归结为实际的编译器及其区分令牌在其上下文中的含义的能力。但是,在这种特殊情况下,编译器的无效可以区分令牌class
在不同上下文中的含义。 class
无论其上下文如何用于表示类的声明,因此它是一个强硬的规则,因此它是一个保留字。这就像它获得的那样简单和低级。
如果您感到被迫,您可以编写自己的Java编译器以包含允许您使用class
作为变量名称的上下文规则。虽然我认为使用clazz
或klass
会更好地利用你的时间 - 但这对你的健康也有好处。
答案 4 :(得分:4)
这来自哪里?
我首先在Josh Bloch的益智游戏中看到了它。但我很确定其它开发人员早就使用它了。乔什布洛赫让它更有名。
答案 5 :(得分:4)
Java没有允许您将关键字用作标识符的功能,与C#及其@
前缀不同(例如@class
是有效的标识符。)
答案 6 :(得分:2)
它只是一个英文单词被Keyword Class Keyword取代(Equavalent),让人们明白它是一个类。它几乎是为了增加代码的可读性
这个
中没有任何重要的逻辑答案 7 :(得分:2)
声明Class clazz
在Java世界中很受欢迎,但对于新手和拼写者来说可能会很尴尬。我听说有些人说应该根据principle of least astonishment来避免。
由于可以说Class
对象represents a type,我个人更愿意将此类变量声明为Class type
。
答案 8 :(得分:0)
我们使用clazz因为class是一个类型标题。例如,您在此处使用类:
public class HelloWorld {
在这里:
Object.class.getName();
所以不幸的是,我们必须使用其他名称,例如clazz。
答案 9 :(得分:-2)
简单地说,<h2>Brought to you by <b><a class="external" href="http://placeholdermag.com/">Placeholder Magazine</a></b>, the <b><a class="external" href="http://www.arts.ca.gov/">California Arts Council</a></b> and the <b><a class="external" href="http://www.stocktonca.gov/government/boardCom/sArts.html">Stockton Arts Commission</a></b>,
<b><a class="external" href="http://tuleburgpress.com/">Tuleburg Press</a></b>, and are proud to announce Stockton's first Zine making workshop series for kids.</h2>
具有class
没有的类。