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

fre*_*ley 149 java methods conventions

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

Jon*_*eet 123

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

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

  • @finnw,提交错误报告.已知陌生的事情从那里实施. (15认同)
  • @Ben:我的经验是,任何"从不"都会有例外. (3认同)
  • @Ben:我认为我们必须同意不同意。我已经编写了代码,其中有很多成员,而没有违反任何关注点分离等。 (2认同)

Mic*_*ael 110

  1. 类(静态)变量:首先是公共类变量,然后是protected,然后是private.

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

  3. 构造函数

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

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

  • @assylias:IMO,可读性独立于IDE.在私下之前保持公开通常会更好. (15认同)
  • 这是15岁,可能有点过时的现代IDE的外观...... (4认同)

Tim*_*kov 36

链接到"代码约定"的更精确:«类和接口声明»

  • +1,afaik - 这是实际回答问题的唯一帖子.是的,Oracle和Sun规定了标准订单:1.公众意见,2.类,3.内部评论,4.静态数据,5.实例数据,6.ctors,7.方法,以及每个部分组内逻辑上,而不是可访问性. (8认同)

Qwe*_*rky 14

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

  • 建设者首先
  • 静态方法接下来,如果有一个main方法,总是在其他静态方法之前
  • 接下来是非静态方法,通常按照它调用的任何方法所遵循的方法的重要性顺序.这意味着调用其他类方法的公共方法出现在顶层,而不调用其他方法的私有方法通常最终会向下移动
  • 标准方法,如toString,equalshashcode未来
  • getter和setter在课程的底部有一个特殊的地方


Tho*_*sen 11

单个类中的40种方法有点多.

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

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

这通常意味着main()在顶部或底部.

  • 这是一个Android Activity,所以有很多根本无法去的地方,`onPause()`,`onResume()`等,以及我的所有`OnClickListener`字段,尽管它们是字段,不要看起来或表现得像他们,所以单独列出它们是明智的. (5认同)
  • 您并不总是有选择,例如,如果您正在实现具有许多方法的接口. (4认同)

elj*_*nso 11

我的"约定":静态在实例之前,public在private之前,构造函数在方法之前,但是main方法在底部(如果存在).