关于静态方法的Java编码约定

Hee*_*jin 11 java convention coding-style

这是一个非常简单的问题,但我认为这有点争议.

当我编写Java类时,我使用以下顺序.

class Foo {

    // static fields
    // instance fields
    // constructors
    // methods (non-static and static methods are mixed but sorted based on their functionalities)
}
Run Code Online (Sandbox Code Playgroud)

我读了一篇文章说:(
来自http://code.google.com/webtoolkit/makinggwtbetter.html#codestyle)

Java类型应具有以下成员顺序:

嵌套类型(混合内部类和静态类是可以的)
静态字段
静态初始化器
静态方法
实例字段
实例初始化器
构造函数
实例方法

如果我按照文章,上面的顺序应该是

class Foo {

    // static fields
    // static methods
    // instance fields
    // constructors
    // instance methods
}
Run Code Online (Sandbox Code Playgroud)

在后者的情况下,我在构造函数之前使用某些方法感到不舒服.哪一个是更广泛使用的惯例?

dog*_*ane 21

我相信Sun的(现在的Oracle)Java编码标准被更广泛地使用.这也是你目前正在使用的.

来自Java TM编程语言的代码约定:

3.1.3类和接口声明

下表按照它们应显示的顺序描述了类或接口声明的各个部分.

  1. 类/接口文档注释(/*... /)
  2. classinterface声明
  3. 必要时,类/接口实现注释(/ ... /)
  4. Class(static)变量
  5. 实例变量
  6. 构造函数
  7. 方法

  • 静态方法与方法呢? (2认同)

Joh*_*n B 5

我个人使用选项 2(实例元素和构造之前的静态字段和方法)。对我来说,这在扫描文件时很有意义,因为从类的用户那里,我可以访问静态内容而无需实例。因此,很高兴在构造函数之前看到它们,因为在使用静态内容时我不关心构造函数。