【发布时间】:2018-10-27 07:59:54
【问题描述】:
为什么下面的sn-p代码使用非静态来运行程序???以这种方式运行程序有什么好处???
public static void main(String[] args) {
Main go = new Main();
go.start();
}
public Main() {
}
public void start() {
//SOME CODE HERE
}
【问题讨论】:
-
public Main() 在这种情况下是构造函数,而不是方法。
-
它使用静态方法 - 第一个执行的是 public static void main(String[] args) 然后 - 在这个方法内 - 对象“Main”被创建,然后是非静态方法 start()被执行。
-
这个程序仍然使用静态的
main方法作为它的入口点。它只是创建Main类的一个实例,然后调用它的方法。你也可以调用这个类Foo和方法bar或Peter和parker。这不会改变任何事情。入口点始终是main方法。为什么这样做?在main方法中有很多逻辑是非常讨厌的。难以测试,难以使用。 -
只是想问一下为什么代码要在start()方法中执行,而不是在static void main()中。有什么不同吗???
-
@HuatLee 看看 GhostCat 的答案,它像往常一样以一种很好理解的方式解释了很多事情。除此之外,您还可以查看this question 并提供更多信息。
标签: java static main non-static