java中的类名约定[关闭]

Posted

技术标签:

【中文标题】java中的类名约定[关闭]【英文标题】:Class name convention in java [closed] 【发布时间】:2013-05-08 09:44:30 【问题描述】:

java中类的命名约定是什么,例如所有类都应该大写吗,如MYCLASS.java?

com.sun.org.apache.bcel.internal.generic 这样的类。 ANEWARRAY。也可以在 Sun 的图书馆中找到

注意:我已经阅读了来自 Oracle 的所有命名约定,但我找不到任何内容表明我们应该使用全大写来命名一个类。

【问题讨论】:

每个人都只是使用驼峰式命名的类名,所以我可能会坚持下去。 “标准”约定:oracle.com/technetwork/java/javase/documentation/… 我能想象的唯一情况(根据惯例)这是一个缩写:ANiceEggWasAtRoughRoundArrayYeti “就像我们在 com.sun 中有一些类..” 立即删除它们。不要将类放在com.sun 包中(除非您是 Sun,或者购买了该公司)。 我认为他指的是Class ANEWARRAY,尽管com.sun 不应该是包名的一部分。 【参考方案1】:

类名应采用驼峰命名法。尽量使用名词,因为类通常代表现实世界中的某些事物。

Documentation 声明如下:

类名应该是名词,大小写混合 每个内部单词都大写。尽量保持你的类名简单 和描述性的。使用完整的单词——避免使用首字母缩写词和缩写词 (除非缩写比长形式更广泛使用, 例如 URL 或 html)。

【讨论】:

您描述的实际上是帕斯卡套管。 Camel 大小写的第一个字母小写。 知道是否有更现代的文档来指定这些约定?您链接到的文档被标记为不受支持,最后一次编辑是在 1999 年。【参考方案2】:

Java 有一个很好描述的命名/编码约定。

你可以在这里查看http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html

从技术上讲,只要公共类位于与该类同名的 .java 源文件中,如何命名类并不重要。

【讨论】:

【参考方案3】:

引用的类 com.sun.org.apache.bcel.internal.generic.ANEWARRAY 看起来来自 Java 的深层内部工作 (internal.generic),即不供开发人员使用。因此,它确实超出了命名约定。我只能推测为什么它都是大写的,也许是为了强调这一点,它不应该被使用。

【讨论】:

很抱歉,您让我的问题令人困惑我已经阅读了 java 中的所有命名约定,但我找不到任何说明类名应该全部大写的东西,这就是我问这个问题的原因。 @ankit 那是因为类不应该全部大写 com.sun.org.apache.bcel.internal.generic。 ANEWARRAY 这是 sun 提供的一个类,它的名字全部大写。 @ankit Ahhh,你最初写问题的方式看起来(不仅仅是对我来说)就像你自己创建了那个类 我现在已经更正了,很抱歉这个误导性的问题,但你的编辑添加了油;)。我想我们俩都学到了一些东西不是吗?【参考方案4】:

通常最好的做法是使用Upper CamelCase。无论如何使用其他约定不会有编译问题。查看conventions的更多详细信息

【讨论】:

【参考方案5】:

在浏览了许多链接后,我了解到没有 Java 约定建议我们以全部大写字母命名一个类。但是我们这样做不会有任何错误。

CloudyMarble 提到了一个适当的原因,即如果缩写像 HTML 那样更有名,我们可以使用此约定。

我还想补充一些关于 ANEWARRAY 的信息,这个类在 Apache 许可证 Source 下并创建新的引用数组。

【讨论】:

以上是关于java中的类名约定[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何 Java 方法排序约定? [关闭]

Asp.net MVC中的约定

如何关闭 Entity Framework Core 5 中的所有约定

Struts2零配置介绍(约定访问)

数据库、表和列的命名约定? [关闭]

extjs6学习笔记1.8 初始: ExtJS命名约定