Können wir die Hauptmethode in Java überladen?

Lesezeit: 4 Minuten

Benutzer-Avatar
Mohan

Können wir a überladen? main() Methode in Java?

  • Warum sollten Sie die Methode main() überladen? Sie können beliebig viele Klassen mit main() erstellen, wenn Sie ein anderes Startverhalten wünschen. Geben Sie einfach die Hauptklasse an, wenn Sie das Glas aufrufen. Oder Sie könnten einfach ein zusätzliches Argument hinzufügen, das Sie testen, wenn Ihr Main startet, das sich auf seine Funktion auswirkt.

    – locka

    21. September 2010 um 10:26 Uhr

Benutzer-Avatar
Jon Skeet

Du kann überladen die main() Methode, aber nur public static void main(String[] args) wird verwendet, wenn Ihre Klasse von der JVM gestartet wird. Zum Beispiel:

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)");
    }
}

Das wird stets drucken main(String[] args) wenn du rennst java Test ... über die Befehlszeile, auch wenn Sie ein oder zwei Befehlszeilenargumente angeben.

Sie können die anrufen main() Methode natürlich selbst aus dem Code – an diesem Punkt werden die normalen Überladungsregeln angewendet.

BEARBEITEN: Beachten Sie, dass Sie eine Varargs-Signatur verwenden können, da dies aus JVM-Sicht gleichwertig ist:

public static void main(String... args)

  • Über die JVM, um genau zu sein – man kann jede überladene Version manuell aufrufen.

    – Peter Török

    21. September 2010 um 10:21 Uhr

  • @Mohan: Dasselbe wie bei jeder anderen Methode. Du kannst anrufen main() von einer anderen Stelle in Ihrem Code.

    – Jon Skeet

    21. September 2010 um 10:35 Uhr

  • @SANTHOSH: Nein, immer noch String[]. Das ist die nur Signatur, die als Einstiegspunkt erkannt wird.

    – Jon Skeet

    7. Dezember 2012 um 7:39 Uhr

  • @JavaMan: Nun, das sagt die Spezifikation … wenn Sie eine andere Signatur angeben (z. B. eine mit Ihrer eigenen Klasse als einem der Parameter), wie würde die JVM wissen, welche Argumente bereitgestellt werden sollen?

    – Jon Skeet

    8. Januar 2015 um 10:02 Uhr


  • @RiteshPuri: Ich kann nicht viel in Richtung eines Zwecks sehen, aber es wäre genauso seltsam verhindern die Überladung. Vergessen Sie nicht, dass die main -Methode kann auch direkt von anderem Code aus aufgerufen werden, es ist also nicht so, dass eine solche Überladung nicht zugänglich wäre.

    – Jon Skeet

    25. Mai 2017 um 5:39 Uhr

Benutzer-Avatar
JVM

Ja, Sie können die Hauptmethode in Java überladen. Aber das Programm führt die überladene Hauptmethode nicht aus, wenn Sie Ihr Programm ausführen, Sie müssen die überladene Hauptmethode von der eigentlichen Hauptmethode aufrufen.

Das bedeutet, dass die Hauptmethode als Einstiegspunkt für den Java-Interpreter fungiert, um die Ausführung der Anwendung zu starten. wobei eine geladene Hauptleitung von Haupt aufgerufen werden muss.

  • Gute Antwort. Vielen Dank. 🙂

    – Vikas Gupta

    12. September 2016 um 7:29 Uhr

  • Tolle Antwort, aber selbst die JVM kann Skeet nicht schlagen.

    – Arvindh Mani

    20. März 2017 um 23:49 Uhr

Ja, durch Methodenüberladung. Sie können eine beliebige Anzahl von Hauptmethoden in einer Klasse durch Methodenüberladung haben. Sehen wir uns das einfache Beispiel an:

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);  
  }  
}  

Es wird die folgende Ausgabe geben:

main() method invoked
10

Benutzer-Avatar
Jaimin Patel

JA, Sie können main() überladen

Aber um es klar zu sagen – obwohl Sie main überladen können, ist nur die Version mit der Standard-Signatur wird als Anwendung von der Kommandozeile ausführbar sein. z.B

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 
}

Ja, Sie können die Hauptmethode in Java überladen. Sie müssen die überladene main-Methode von der eigentlichen main-Methode aufrufen.

Benutzer-Avatar
vikram

Ja, die Hauptmethode kann überladen werden. Die überladene main-Methode muss innerhalb der „public static void main(String args[])”, da dies der Einstiegspunkt ist, wenn die Klasse von der JVM gestartet wird. Auch eine überladene Hauptmethode kann einen beliebigen Qualifizierer wie eine normale Methode haben.

Benutzer-Avatar
Wurzelreisender

Ja, du kannst.

Das main Methode in Java ist keine außerirdische Methode. Abgesehen davon, dass main() wie jede andere Methode ist und auf ähnliche Weise überladen werden kann, sucht JVM immer nach der Methodensignatur, um das Programm zu starten.

  • Das Normale main Die Methode fungiert als Einstiegspunkt für die JVM, um die Ausführung des Programms zu starten.

  • Wir können die überladen main Methode in Java. Aber das Programm nicht
    Führen Sie die überladenen aus main Methode Wenn wir Ihr Programm ausführen, müssen wir die überladene Methode aufrufen main Methode nur von der eigentlichen Hauptmethode.

    // 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);
      }
    }
    

    Gültige Varianten von main() in Java

1186630cookie-checkKönnen wir die Hauptmethode in Java überladen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy