说到java类中的顺序/序列方法。
您希望/更愿意看到main()
方法?
请分享您的想法,这是一种风格/哲学问题。
请不要建议将main()
单独保存在单独的文件中。
答案 0 :(得分:8)
这些只是我的想法:
main()是与对象实例无关的静态方法。我们知道它作为入口点存在,使我们的程序/类可执行。
事实是,在Java中,所有(但是原语)都是一个对象,所以main()必须在某个类的某个地方声明。这样的静态方法可以执行的代码更关心的是设置程序以便执行,并委托我们的业务逻辑(实际执行某些操作的对象)来运行应用程序。因此,它的关注点与我们类的其他部分不同(它定义了我们试图封装的一些数据和行为)。
main()并不真正属于我们日常类的数据和行为,因为我怀疑每个类都需要自己执行。 main()关注的是运行我们的程序。因此,应该在与应用程序启动/执行相关的项目模块中声明它远离我们的业务对象。因此,正如您可能猜测的那样,我正在提出您所说的不建议的内容 - 尽可能远离您的类和逻辑,并且仅在您的应用程序的入口点的上下文中声明它。 / p>
至于文件本身的位置,我认为这并不重要 - 只要该文件中的代码显然与设置和运行程序有关。
答案 1 :(得分:5)
Sun Microsystems多年前发布了他们的 Java编程语言的代码约定,许多组织都在不同程度上遵循它。
在this section中,他们建议将方法放在文件的末尾。如您所知,main
是“另一种方法”,虽然是类方法而不是实例方法。
虽然没有人强迫你遵守Sun的惯例,但由于对它有一定程度的熟悉,因此相对接近它们可能会有一些优势。大多数(如果不是全部)标准JDK库都将遵循它。
这是恕我直言,采用方法 - 最后一种方法的一个很好的理由。关于main
在方法中的位置,将它放在第一个或最后一个可行。如果你发现它在某种程度上是“特殊的”,那就把它放在文件的最后。
答案 2 :(得分:4)
我总是把它放在最后,因为这就是他们在C.“传统”中的表现。这可能不是一个好理由。 : - )
答案 3 :(得分:1)
我认为你没有系统地在你编写的每个类中放置一个main()方法(在后面的例子中,你必须设想编写单元测试)。
只要您的类包含main()方法,并且应用程序的入口点也是如此,此类不应具有除应用程序初始化之外的任何行为。这种良好做法被称为“关注点分离”:一类=一种责任。
如果是这种情况,您的课程中不应该有那么多方法。我个人总是按重要性对方法进行排序:最重要/最有用/最重要的方法是所有其他方法,不添加任何实际工作(setter和getter对我来说都是那种)。
这样,读者可以先访问最重要的信息。
当然,我建议使用Java Convention进行编码,这意味着在声明方法之前,首先要声明您的类字段。