是否有任何Java方法排序约定?

时间:2011-01-12 11:26:20

标签: java methods conventions

我有一个大型课程(40个左右的方法),这是我将作为课程作业提交的软件包的一部分。目前,这些方法在实用公共/私人等方面相当混乱,我想以合理的方式对它们进行排序。有这样做的标准方法吗?例如。通常字段在方法之前列出,构造函数在其他方法之前列出,getter / setter在最后;剩下的方法呢?

8 个答案:

答案 0 :(得分:115)

有些约定首先列出所有公共方法,然后列出所有私有方法 - 这意味着即使没有涉及任何接口,也很容易将API与实现分开,如果你看到我的意思。

另一个想法是将相关方法组合在一起 - 这样可以更容易地发现可以将现有大型类拆分为几个较小的,更具针对性的类的接缝。

答案 1 :(得分:101)

  1. 类(静态)变量:首先是公共类变量,然后是 受保护,然后是私人。

  2. 实例变量:首先是public,然后是protected,然后是private。

  3. 构造

  4. 方法:这些方法应按功能分组 而不是范围或可访问性。例如,私有类方法 可以在两个公共实例方法之间。目标是制作 更容易阅读和理解代码。

  5. 来源:http://www.oracle.com/technetwork/java/codeconventions-141855.html

答案 2 :(得分:34)

“代码约定”的更精确链接:«Class and Interface Declarations»

答案 3 :(得分:13)

不确定是否有普遍接受的标准,但我自己的偏好是;

  • 构造函数首先
  • 静态方法接下来,如果有一个main方法,总是先于其他静态方法
  • 接下来是
  • 非静态方法,通常按照它调用的任何方法所遵循的方法的重要性顺序。这意味着调用其他类方法的公共方法出现在顶层,而不调用其他方法的私有方法通常最终朝向底层
  • 标准方法,例如toStringequalshashcode下一步
  • getter和setter在类的底部有一个特殊的位置

答案 4 :(得分:11)

单个类中的40个方法有点多。

将一些功能转移到其他适当命名的类中是否有意义。然后更容易理解。

当您的数量减少时,以自然阅读顺序列出它们要容易得多。一个常见的范例是按照您需要的顺序列出之前 之后的事物。

这通常意味着main()位于顶部或底部。

答案 5 :(得分:11)

我的“约定”:实例之前的静态,私有之前的public,方法之前的构造函数,但是底部的main方法(如果存在)。

答案 6 :(得分:2)

另外,如果你出于某种原因混淆了eclipse,那么eclipse可以为你排序班级成员:

打开您的班级文件,转到主菜单中的“来源”,然后选择“排序成员”。

取自此处:Sorting methods in Eclipse

答案 7 :(得分:1)

您使用的是Eclipse吗?如果是这样,我会坚持使用默认的成员排序顺序,因为对于那些读取代码的人来说,这可能是最熟悉的(尽管它不是我最喜欢的排序顺序。)