我有一个大型课程(40个左右的方法),这是我将作为课程作业提交的软件包的一部分。目前,这些方法在实用公共/私人等方面相当混乱,我想以合理的方式对它们进行排序。有这样做的标准方法吗?例如。通常字段在方法之前列出,构造函数在其他方法之前列出,getter / setter在最后;剩下的方法呢?
答案 0 :(得分:115)
有些约定首先列出所有公共方法,然后列出所有私有方法 - 这意味着即使没有涉及任何接口,也很容易将API与实现分开,如果你看到我的意思。
另一个想法是将相关方法组合在一起 - 这样可以更容易地发现可以将现有大型类拆分为几个较小的,更具针对性的类的接缝。
答案 1 :(得分:101)
类(静态)变量:首先是公共类变量,然后是 受保护,然后是私人。
实例变量:首先是public,然后是protected,然后是private。
构造
方法:这些方法应按功能分组 而不是范围或可访问性。例如,私有类方法 可以在两个公共实例方法之间。目标是制作 更容易阅读和理解代码。
来源:http://www.oracle.com/technetwork/java/codeconventions-141855.html
答案 2 :(得分:34)
“代码约定”的更精确链接:«Class and Interface Declarations»
答案 3 :(得分:13)
不确定是否有普遍接受的标准,但我自己的偏好是;
toString
,equals
和hashcode
下一步答案 4 :(得分:11)
单个类中的40个方法有点多。
将一些功能转移到其他适当命名的类中是否有意义。然后更容易理解。
当您的数量减少时,以自然阅读顺序列出它们要容易得多。一个常见的范例是按照您需要的顺序列出之前或 之后的事物。
这通常意味着main()
位于顶部或底部。
答案 5 :(得分:11)
我的“约定”:实例之前的静态,私有之前的public,方法之前的构造函数,但是底部的main方法(如果存在)。
答案 6 :(得分:2)
另外,如果你出于某种原因混淆了eclipse,那么eclipse可以为你排序班级成员:
打开您的班级文件,转到主菜单中的“来源”,然后选择“排序成员”。
答案 7 :(得分:1)
您使用的是Eclipse吗?如果是这样,我会坚持使用默认的成员排序顺序,因为对于那些读取代码的人来说,这可能是最熟悉的(尽管它不是我最喜欢的排序顺序。)