我们可以在Java中重载main()
方法吗?
答案 0 :(得分:117)
你可以重载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)");
}
}
当您从命令行运行main(String[] args)
时,总是打印java Test ...
,即使您指定了一个或两个命令行参数。
当然,您可以自己从代码中调用main()
方法 - 此时将应用正常的重载规则。
编辑:请注意,您可以使用varargs签名,因为从JVM的角度来看,这是等效的:
public static void main(String... args)
答案 1 :(得分:14)
是的,您可以在Java中重载main方法。但是程序在运行程序时不执行重载的main方法,你必须从实际的main方法调用重载的main方法。
这意味着main方法充当java解释器的入口点以开始执行应用程序。 需要从main调用加载的main。
答案 2 :(得分:4)
是的,通过方法重载。您可以通过方法重载在类中包含任意数量的主方法。让我们看一个简单的例子:
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
答案 3 :(得分:3)
是,您可以重载main()
但要明确 - 虽然您可以重载main,但只有具有标准签名的版本才能从命令行作为应用程序执行。 e.g
0xFFFF_FFE3
答案 4 :(得分:2)
是的,您可以在Java中重载main方法。你必须从实际的main方法中调用重载的main方法。
答案 5 :(得分:2)
是的,你可以。
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);
}
}
答案 6 :(得分:1)
是的,我们可以重载main方法。 main方法一定不能是静态main方法。
答案 7 :(得分:1)
是的,main方法可以重载。必须从“public static void main(String args [])”内部调用重载的main方法,因为这是JVM启动类时的入口点。同样重载的main方法可以有任何限定符作为普通方法。
答案 8 :(得分:1)
这是完全合法的:
public static void main(String[] args) {
}
public static void main(String argv) {
System.out.println("hello");
}
答案 9 :(得分:1)
是。 ' 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
$
在上面的代码中,静态方法以及主要方法的非静态版本都被重载以用于演示目的。请注意,通过编写JVMs main,我的意思是说,它是JVM首先用于执行程序的主要方法。
答案 10 :(得分:1)
是的,你可以重载main方法但是解释器总是会搜索正确的main方法语法来开始执行.. 是的,你必须在对象的帮助下调用重载的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
答案 11 :(得分:1)
是的,主方法可以重载,因为其他函数可以重载。需要注意的是,应该至少有一个主函数“ String args [] < / strong>“作为参数。并且程序中可以有不同的参数和功能的任何数量的主函数。让我们通过一个简单的例子来理解:
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)");
}
}
输出:
这是主要功能
嗨,这是重载功能
答案 12 :(得分:1)
是根据我的观点,我们能够重载主方法,但方法重载它的方法。例如
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);
}
}
在这个Double Back斜杠步骤中,我只是调用主方法....
答案 13 :(得分:0)
是的,您可以重载主方法,但应该只有一个签名为public static void main(string args[])
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");
}
}