Instanziierung der Main - Klasse

famco

Aktives Mitglied
Hallo,
als Java-Anfänger/Umsteiger bin ich ganz heftig am üben. Dabei sehe ich mir natürlich ganz viele Quelltexte an. Mir ist aufgefallen, dass es offensichtlich verschiedene Techniken gibt, das Hauptprogramm zu implementieren. Insbesondere sind mir die Vorteile des folgenden Ansatzes nicht klar:
Java:
public class Main {
   public Main()
   {
     // hier der eigentlich Appliaktionscode
   }

   public static void main(String [] args)
   {
      Main m = new Main();
   }
}
Warum wird ein Objekt der Main-Klasse instanziiert und nicht einfach der Applikationscode in die main-Methode geschrieben?
Danke
 
Zuletzt bearbeitet:
ICh nehme an das ist einfach eine Konvention von manchen Programmieren und hängt von der jeweiligen Aufgabe ab.

Daher ist es kein Problem etwas direkt in der main-Methode zu machen
 
Eine objektorientierten Sprache ist nun mal dafür ausgelegt, mit Objekten zu arbeiten, nicht mit Klassen. Außerdem kann die Klasse Main ja auch von anderen Klassen ableiten - aber davon kannst du in der statischen Methode nicht unmittelbar profitieren. Hier ein Beispiel, das mit dem "Direkt-in-main-Schreiben" Ansatz nicht ohne weiteres funktioniert:

Java:
public class Main extends JFrame {
   public Main()
   {
       super("Bla");
       setSize(100,100);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true); 
   }
 
   public static void main(String [] args)
   {
      Main m = new Main();
   }
}

Sicher, man könnte hier auch ein JFrame-Objekt in main erzeugen und manipulieren, aber spätestens wenn du Zugriff auf protected-Members haben willst, wird es unbequem.

Ein weiterer Punkt ist Vererbung: Eventuell will jemand später von deiner Main-Klasse erben, aber das funktioniert nicht, wenn du alles in main packst.
 

Zurück
Oben