【发布时间】:2012-05-16 15:55:57
【问题描述】:
我有一个类 (1) 有一些构造函数(arg 和没有 args)。 在另一个 class(2) 中,使用 new constructor() 创建了 Class 1 的对象。那么在这种情况下会调用 main 方法吗?
理想情况下,什么时候在任何类中调用 main 方法?
【问题讨论】:
-
注意:main 是静态的,不需要对象的
new。
我有一个类 (1) 有一些构造函数(arg 和没有 args)。 在另一个 class(2) 中,使用 new constructor() 创建了 Class 1 的对象。那么在这种情况下会调用 main 方法吗?
理想情况下,什么时候在任何类中调用 main 方法?
【问题讨论】:
new。
任何类都可以有一个 main 方法。例如,您的 Class(1) 和 Class(2) 类都可以有一个 main 方法,但在您的程序运行时只会调用一次。
当您运行程序时,例如 java class1 - 您告诉 Java 您希望使用 Class(1) 的 main 方法启动程序。这可能会令人困惑,因为您认为 Java 会执行它找到的每一个主要方法,但事实并非如此。一旦 Java 在您指定的类中找到并运行了 main 方法,它将忽略它以后可能找到的所有 main() 方法,因为它已经为您的程序执行了一个 main 方法。
您可以将 main() 视为通向程序的门,一旦进入,计算机就不会再次尝试进入,它已经在程序中!希望对您有所帮助。
【讨论】:
main 是一个静态方法,是程序的入口点,在程序启动时被调用一次(除非你显式调用它),而不是为每个对象初始化。
【讨论】:
main 方法只在两种情况下被调用:
main 方法,虽然这是正确的 Java,但不是最佳实践main 不会在类的实例化时自动调用 - 作为静态方法,它的封闭类甚至不需要实例化即可调用。
另一方面,构造方法在创建类时被调用。
【讨论】:
当你运行你的 class2(应该包含main 方法)时,main 方法将被调用。
【讨论】:
您的main 方法将被不在您的程序中的东西调用,并且将被调用一次以启动您的程序。查看here 了解更多信息。至于你应该把它放在哪里,它的位置并没有真正的限制。
【讨论】: