我们可以在 Java 中重载 main 方法吗?

我们能在 Java 中重载 main()方法吗?

170487 次浏览

可以重载了 main()方法,但是在 JVM 启动类时只使用 public static void main(String[] args)。例如:

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


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


public static void main(String arg1, String arg2) {
System.out.println("main(String arg1, String arg2)");
}
}

这将在从命令行运行 java Test ...时打印 main(String[] args),即使您指定了一个或两个命令行参数。

当然,您可以从代码中自己调用 main()方法-这时将应用正常的重载规则。

编辑: 注意,您可以使用 varargs 签名,因为从 JVM 的角度来看,它是等价的:

public static void main(String... args)

是的,可以在 Java 中重载 main 方法。但是当您运行程序时,程序并不执行重载的 main 方法,您必须从实际的 main 方法调用重载的 main 方法。

这意味着 main 方法充当 java 解释器启动应用程序执行的入口点。 其中作为一个装载的主要需要从主要调用。

是的,通过方法重载。通过方法重载,可以在类中使用任意数量的主方法。让我们看一个简单的例子:

class Simple{
public static void main(int a){
System.out.println(a);
}


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

它将产生以下结果:

main() method invoked
10

是的,我们可以重载主方法。主方法不能是静态的主方法。

是的,可以在 Java 中重载 main 方法。必须从实际的 main 方法调用重载的 main 方法。

是的,可以重载 main 方法。必须从“ public static void main (String args [])”内部调用重载的 main 方法,因为这是 JVM 启动类时的入口点。另外,重载的 main 方法可以像普通方法一样拥有任何限定符。

是的,您可以过载 main ()

但是说清楚 虽然可以重载 main,但是只有带有 标准签名的版本可以从命令行作为应用程序执行。例如:

public static void main(String a,String... args){
// some code
}
2)public static void main(String[] args){//JVM will call this method to start
// some code
}

这是完全合法的:

public static void main(String[] args) {


}


public static void main(String argv) {
System.out.println("hello");
}

是的。可以重载‘ main ()’方法。我试着输入一些代码来回答你的问题。

public class Test{
static public void main( String [] args )
{
System.out.println( "In the JVMs static main" );
main( 5, 6, 7 );    //Calling overloaded static main method
Test t = new Test( );
String [] message  = { "Subhash", "Loves", "Programming" };
t.main(5);
t.main( 6, message );
}


public static void main( int ... args )
{
System.out.println( "In the static main called by JVM's main" );
for( int val : args )
{
System.out.println( val );
}
}


public void main( int x )
{
System.out.println( "1: In the overloaded  non-static main with int with value " + x );
}


public void main( int x, String [] args )
{
System.out.println( "2: In the overloaded  non-static main with int with value " + x );
for ( String val : args )
{
System.out.println( val );
}
}
}

产出:

$ java Test
In the JVMs static main
In the static main called by JVM's main
5
6
7
1: In the overloaded  non-static main with int with value 5
2: In the overloaded  non-static main with int with value 6
Subhash
Loves
Programming
$

在上面的代码中,出于演示的目的,静态方法和主方法的非静态版本都被重载。注意,通过编写 JVM main,我的意思是说,它是 JVM 首先用来执行程序的 main 方法。

你可以的。

Java 中的 main方法不是地外方法。除了 main()就像其他任何方法一样并且可以以类似的方式重载之外,JVM 总是寻找方法签名来启动程序。

  • 普通的 main方法充当 JVM 启动的入口点 程序的执行

  • 我们可以在 Java 中重载 main方法,但程序不能
    执行重载的 main方法时,我们运行您的程序,我们需要 仅从实际的 main 方法调用重载的 main方法。

    // A Java program with overloaded main()
    import java.io.*;
    public class Test {
    // Normal main()
    public static void main(String[] args) {
    System.out.println("Hi Geek (from main)");
    Test.main("Geek");
    }
    // Overloaded main methods
    public static void main(String arg1) {
    System.out.println("Hi, " + arg1);
    Test.main("Dear Geek","My Geek");
    }
    public static void main(String arg1, String arg2) {
    System.out.println("Hi, " + arg1 + ", " + arg2);
    }
    }
    

    Java 中 main ()的有效变体

是的,您可以重载 Main 方法,但是在任何类中,应该只有一个具有签名 public static void main(string args[])的方法,您的应用程序在这里启动 Execution,正如我们在任何语言中所知道的那样,Execution 从 Main 方法启动。

package rh1;


public class someClass
{


public static void main(String... args)
{
System.out.println("Hello world");


main("d");
main(10);
}
public static void main(int s)
{


System.out.println("Beautiful world");
}
public static void main(String s)
{
System.out.println("Bye world");
}
}

是的,您可以重载 main 方法,但是解释器将始终搜索正确的 main 方法语法以开始执行。. 是的,你必须在 object 的帮助下调用重载的 main 方法。

class Sample{
public void main(int a,int b){
System.out.println("The value of a is "  +a);
}
public static void main(String args[]){
System.out.println("We r in main method");
Sample obj=new Sample();
obj.main(5,4);
main(3);
}
public static void main(int c){
System.out.println("The value of c  is"  +c);
}
}


The output of the program is:
We r in main method
The value of a is 5
The value of c is 3

是的,main 方法可以重载 ,因为其他函数也可以重载。需要注意的一点是,应该至少有一个以“ 字符串参数[]”为参数的主函数。程序中可以有任意数量的主函数,它们具有不同的参数和功能。让我们通过一个简单的例子来理解:

Class A{


public static void main(String[] args)
{
System.out.println("This is the main function ");
A object= new A();
object.main("Hi this is overloaded function");//Calling the main function
}


public static void main(String argu)     //duplicate main function
{
System.out.println("main(String argu)");
}
}

产出: 这是主要功能
嗨,这是过载功能

是的,根据我的观点,我们能够重载 main 方法,但是方法重载,仅此而已。例如

class main_overload {
public static void main(int a) {
System.out.println(a);
}
public static void main(String args[]) {
System.out.println("That's My Main Function");
main(100);
}
}

在这个双斜杠步骤中,我只是调用 main 方法... 。