gpt4 book ai didi

java - Java程序中可以存在两个主要方法吗?

转载 作者:IT老高 更新时间:2023-10-28 21:07:20 24 4
gpt4 key购买 nike

Java 程序中可以存在两个主要方法吗?

仅通过它们的论点不同,例如:

public static void main(String[] args)

第二个可以

public static void main(StringSecond[] args)

如果可能,哪个 Method 将用作入口点?如何识别?

最佳答案

这里可以看到在一个名为Test.java的单个文件中有2个public static void main(String args[])(具体没有使用文件名作为 2 个类名中的任何一个),并且 2 个类使用默认访问说明符。

class Sum {

int add(int a, int b) {
return (a+b);
}

public static void main (String args[]) {
System.out.println(" using Sum class");
Sum a = new Sum();
System.out.println("Sum is :" + a.add(5, 10));
}

public static void main (int i) {
System.out.println(" Using Sum class main function with integer argument");
Sum a = new Sum();
System.out.println("Sum is :" + a.add(20, 10));
}
}

class DefClass {

public static void main (String args[]) {
System.out.println(" using DefClass");
Sum a = new Sum();
System.out.println("Sum is :" + a.add(5, 10));
Sum.main(null);
Sum.main(1);
}
}

当我们编译代码 Test.java 时,它将生成 2 个 .class 文件(即 Sum.classDefClass.class)和如果我们运行 Test.java,我们将无法运行它,因为它找不到任何名为 Test 的主类。相反,如果我们使用 java Sumjava DefClass 两者都会使用不同的 main() 给出不同的输出。使用 Sum 类的 main 方法我们可以使用类名 Sum.main(null)Sum.main(1)//在 DefClass main() 中传递整数值.

在一个类作用域中,每个类只能有一个 public static void main (String args[]),因为一个类的静态方法属于一个类而不属于它的对象并且被调用使用它的类名。即使我们创建多个对象并使用它们调用相同的静态方法,这些调用所引用的静态方法的实例也是相同的。

我们还可以通过在 main 中传递不同的参数集来重载 main 方法。上面的代码中提供了类似的示例,但默认情况下,控制流将从我们使用 java classname 调用的类文件的 public static void main (String args[]) 开始。要使用其他参数集调用 main 方法,我们必须从其他类显式调用它。

关于java - Java程序中可以存在两个主要方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13399836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com