为什么Java类的第一个字母应该大写?

28

Java类的第一个字母为什么要大写?使用小写字母命名类是否可行?如果可行,有什么区别?


62
因为通用的书写规则是这样规定的。这与英语等自然语言相同。你可以打破规则,信息总能传达到,但是看起来会显得非常愚蠢。 - some
10个回答

114

这是大多数Java程序采用的编码约定。随着你熟悉了某种标准,它使得阅读代码更容易。

不,你不必遵循它,但如果不这样做,你就不会交到朋友 ;)

为什么/如何建立这个约定?

这个约定是由Sun/Java语言的创造者建立的。

它很可能是为了提高Java语言在广泛和多样化的受众中的普及度,降低新开发人员的入门要求(如果你不需要在其他人的“想法”之间不断切换,学习起来就容易得多),并且通常试图在社区内保持代码的清洁。

你可以问“为什么公司有程序员的样式指南?”原因通常是相同的


这个约定是如何/为什么首先建立的? - Michael
1
@Michael 这个规范是由Java语言的创造者Sun公司制定的。它很可能是为了改善该语言在广泛和多样化的受众中的推广,降低新开发人员的入门要求(如果您不需要不断地在其他人的“好代码”之间切换,学习起来会更容易),并且通常试图在社区内保持代码的清洁。但这只是我的看法。你可以问“为什么公司有编码风格指南?”原因通常是相同的。 - MadProgrammer

22

使用命名规范有助于在阅读代码时更容易和迅速地理解它。

这里是两行简单的代码:

foo = FooFactory.getFooInstance();
foo.doSomethingFoosDo();
如果我们知道作者遵循命名约定,我们可以很快知道以下几点:
  1. foo 是某个类的实例
  2. FooFactory 是一个类
  3. getFooInstance()FooFactory 类的一个静态方法
  4. doSomethingFoosDo()foo 的一个实例方法
否则,我们就要浪费时间去思考“FooFactory 是对象还是类?”等问题。
如果没有命名约定,您实际上必须搜索源代码以回答这些问题。
这一开始看起来似乎过于严格,但当您开始编写更复杂的软件并与他人协作时,它会产生巨大的影响。
您会发现,命名约定甚至使你自己的代码更易读。

我并不反对命名规范,并且在合理的情况下尽量遵循它们,但是好的集成开发环境已经使其中一些规范变得不那么重要了。就像上面的语法高亮一样,清楚地表明哪个foo是对象,哪个是类。 - Alexandre G
好的...也许IDE使它们在使用IDE时变得_"不那么重要"_。但我不确定这是任何不遵循命名约定的理由。我认为你应该努力使你的代码对于使用文本编辑器和在线存储库的人以及使用IDE阅读代码的人都易于阅读。 - jahroy
有趣的是,如果我编辑我的答案,使FooFactory以小写字母开头,语法高亮不再将_fooFactory_识别为类。 - jahroy

18

为什么Java类的首字母要大写?

Java编程语言有一份代码约定规范,其中指出:

这个《Java编程语言代码约定》包含了Sun公司推荐遵循的标准约定。它涵盖文件名、文件组织、缩进、注释、声明、语句、空格、命名约定、编程实践,并包括一个代码示例。

  • 80%的软件寿命周期成本用于维护。
  • 几乎没有软件被原作者维护其整个生命周期。
  • 代码约定可以提高软件的可读性,让工程师更快速、彻底地理解新代码。

它还在命名约定中指出,对于类名:

类名应该是名词,使用混合大小写,内部每个单词的第一个字母应大写。尽量保持类名简洁明了。使用全称而非缩写或首字母缩略语(除非该缩写比全称更为常用,如URL或HTML)。

例如:class Raster; class ImageSprite;

在Java中使用小写类名运行程序可行吗?如果可行,有什么区别吗?

编译器来说是可以的,并没有区别。但这样做不尊重代码和其他程序员

不遵循Java代码约定会让你感到不舒服。


16
为什么Java类的第一个字母应该大写?
这是一种被有经验的Java程序员普遍遵守的约定。
不能使用小写字母运行包含小写类名的程序吗?
可以。也可以在同样的衣服里工作一个月。但你不会因此交到任何朋友。
如果可能,有什么区别?
如果忽略惯例,你的代码对其他人来说就不易读了。如果你编写的代码只有你自己看,那么代码风格就完全是你的问题。然而,在现实世界中,我们大多数人经常不得不阅读其他人编写的代码。如果你的代码很难读懂,因为你选择忽略了惯例,不要指望别人会夸赞你。
坦白地说,在需要其他人阅读的情况下编写难以阅读的代码是不利于社交的。

我应该补充一点,这不仅仅是反社交的问题。事实证明,如果忽略惯例,你可能会被自己“烧伤”。风格惯例是为了与Java的标识符消歧规则配合使用而设计的;请参见JLS 6.5。如果忽略样式规则,你可能会发现一个模棱两可的标识符(例如,既可以是类名也可以是变量名)以意外的方式被消除歧义。结果将是意外的编译错误,这些错误通常很难理解。


11

Java类的命名规范

  Classes: Names should be in CamelCase. 

尽量使用名词,因为一个类通常代表现实世界中的某个东西:

class Customer
 class Account 


6

仅仅是命名约定。建议遵循。


5
这些不是规则,而是约定。您可以自由地使用任何想要的方式,但是遵循约定可以确保其他开发人员能够快速理解您的代码,因为清楚什么是类、属性、方法等等。
类名应该是名词,采用混合大小写,每个内部单词的首字母大写。尽量简单和描述性地命名您的类。使用完整的单词,避免缩写和缩略语(除非缩写比长形式更广泛地使用,如URL或HTML)。
参考链接:http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html#367

4

是的,在Java中可以使用小写类名。 但是,您应该遵守Java社区推荐的命名惯例。


4
Java编码和命名规范是为了提高代码的可维护性而制定的。遵循这些标准的代码将更容易维护,其他开发人员也可以理解你在Java代码中所做的工作。
来自互联网的摘录:
“不同的Java程序员可能有不同的编程风格和方法。通过使用标准的Java命名规范,他们使得自己的代码更易于阅读,也更易于其他程序员阅读。 Java代码的可读性很重要,因为这意味着花费在尝试理解代码的时间较少,留下更多的时间来修复或修改它。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接