有没有Java方法sorting约定?
我有一个大型的课程(40多个方法),这是我将作为课程作业提交的一个包的一部分。 目前,这些方法在公用/私用等方面相当混乱,我想以合理的方式排列它们。 有没有这样做的标准方式? 例如通常字段在方法之前列出,构造函数在其他方法之前列出,并且getter / setter在最后; 剩下的方法呢?
有些约定首先列出了所有的公共方法,然后是所有的私有方法 – 这意味着即使没有涉及到接口,如果你明白我的意思,很容易将API与实现分开。
另一个想法是将相关的方法组合在一起 – 这样可以更容易地find接缝,从而将现有的大型课堂拆分为几个更小,更有针对性的课程。
-
类(静态)variables:首先是public类variables,然后是protected,然后是private。
-
实例variables:首先公开,然后保护,然后私人。
-
构造函数
-
方法:这些方法应该按照function而不是范围或可访问性进行分组。 例如,私有类方法可以在两个公共实例方法之间。 目标是让阅读和理解代码更容易。
来源: https : //web.archive.org/web/20130627193836/http : //www.oracle.com/technetwork/java/javase/documentation/codeconventions-141855.html
与«Code Conventions»更精确的链接: «类和接口声明»
不知道是否有普遍接受的标准,但我的偏好是;
- 首先是构造函数
- 接下来是静态方法,如果有主要方法,总是在其他静态方法之前
- 接下来是非静态的方法,通常按照方法的重要性,以及所调用的任何方法。 这意味着调用其他类方法的公共方法会出现在顶级和私有方法中,这些方法通常不会调用其他方法
- 标准方法如
toString
,equals
和hashcode
- 获得者和制定者在课堂底部有一个特殊的地方
单个课堂中的40个方法有点多。
将其中一些function转移到其他适当命名的类中是否合理? 那么理解就容易多了。
当你有更less的时候,以自然的阅读顺序列出它们会更容易。 频繁的范例是在你需要它们之前或之后列出事物。
这通常意味着main()在顶部或底部。
我的“约定”:实例之前的静态,私有之前的公共,方法之前的构造函数,但底部的主要方法(如果存在)。
另外,如果你因为某种原因将eclipse混淆,eclipse提供了为你sorting类成员的可能性:
打开你的class级文件,进入主菜单的“源代码”,select“sorting成员”。
取自这里: 在Eclipse中sorting方法
你在使用Eclipse吗? 如果是的话,我会坚持使用默认的成员sorting顺序,因为读取代码的人可能是最熟悉的(尽pipe这不是我最喜欢的sorting顺序)。