2010-01-01 63 views
2

是否可以重载主要方法?如果是,从哪种方法jvm将开始执行?是否可以重载主方法?

+3

嗯...这是一个家庭作业/测验问题? – notnoop 2010-01-01 07:26:34

+0

我想是这样的...还有另一个类似的问题由同一用户发布 – 2010-01-01 08:13:45

回答

2

是的。主要方法可以像Java中的其他方法一样重载。

通常的声明主要是

public static void main(String[] args) throws Exception; 

当您启动Java应用程序,它看起来与名称“main”,返回类型“void'和字符串数组的一个参数的静态方法。即你所抛出的东西在解决这个方法中并不重要。

重载提供了多个具有相同名称但参数不同的方法(以及可能的返回类型)。

通过上面的说明,我们可以重载主要方法。

+0

通常的main声明是“public static void main(String [] args)”抛出异常。主要应该正确地处理异常,而不是向用户显示堆栈跟踪! – TofuBeer 2010-01-01 08:05:42

1

是的。可以重载的主要方法,但下面的方法将在您执行类是执行:

5

可以重载的主要方法,但JVM将始终具有以下签名启动的主要方法:

public static void main(String[] args); 
5

正如其他人,很可能的,但说,执行将始终从

一个小程序开始演示:

public class Test{ 

    public static void main(String [] args){ 
     System.out.println("First"); 
     main(); 
    } 

    public static void main(){ 
     System.out.println("Second"); 
    } 
} 

输出:

 
First 
Second 
-1

是您可以。 jvm足够聪明,知道应该加载哪一个,因为它查看与主方法匹配的方法声明,并且是合乎逻辑的。主要方法声明的部分做出完美的感觉,当你觉得像“JVM”和画面的主要方法做什么(启动应用程序):

  • public,因为这种方法必须由JVM访问(不由你写的)。
  • static,暗示这个方法可以在没有对象的情况下被访问(因为它的表示永远不会改变),但是如果你再次像jvm一样思考,这个逻辑很容易被理解; “我没有任何对象来创建(实例化)对象,所以我需要一个静态方法来启动应用程序,因为根本没有任何合乎逻辑的方法来获取特定于实例的方法,因为我没有任何东西尚未创造物体“。
  • void此方法无法在逻辑上返回任何内容,因为没有任何内容尚未返回任何内容。这是应用程序的起点。
  • main我是没有我的主要方法,你将不会有应用程序。
  • String[] args向我发送可能对我的启动有用的数据。
+0

是的,我在一年前因为要求一个关于主题的问题被禁止了,这个问题对我的经历产生了严重的影响,因为我基本上与主站点隔离,提出与正确使用SO和姐妹站点有关的问题。我通过联系他们提出了这个问题,并没有发生任何事。尽管那时我正在接受化疗,并从大脑手术中恢复过来。 – thejartender 2012-06-11 14:33:30

+0

最终化学/脑部手术,而PITA,与SO内容无关 - 这是主持人和开发人员所关注的(这是合理的)。你所能做的就是再试一次,我建议你这样做 - 最糟糕的情况是什么都没有。 – 2012-06-11 14:36:12

+0

此外,我得到的回应是“改善我的问题”如何改进删除的问题? – thejartender 2012-06-11 14:36:25

0

以String作为参数的主要方法是程序的默认入口点。 您可以重载,但不会改变程序的入口点。

相关问题