Grundlegende Verständnisfrage



  • Moin, Moin...

    Ich bin gerade dabei mich mit Java auseinanderzusetzen. Dazu eine Frage:

    Wenn ich eine Klasse habe, in der die statische Funktion main() definiert ist, wird bei Programmaufruf von dieser Klasse eine Instanz erzeugt(ich denke nicht) oder läuft das Programm auf 'Klassenebene' (wie kann ich das besser ausdrücken?)?

    Ciao...



  • Kal El schrieb:

    wird bei Programmaufruf von dieser Klasse eine Instanz erzeugt

    Nein, eben nicht.
    Um eine Instanz zu erzeugen, müsste man sich ja dann schon im "Objekt" befinden...
    Darum muß main() immer statisch sein. 💡



  • Kal El schrieb:

    oder läuft das Programm auf 'Klassenebene' (wie kann ich das besser ausdrücken?)?

    Exakt, static drückt in Java 'Klassenebene' (statt 'Instanzebene') aus.



  • Moin, Moin...

    Danke für die Antworten.

    Wenn ich das nun richtig verstanden habe, dient die Klasse, in der main() definiert ist, nur als Vehikel, um die Anwendung überhaupt zum Laufen zu bewegen, oder?

    Wenn ich nun eine größere Anwendung schreibe, die aus mehreren Klassen besteht, gibt es Konventionen wie umfangreich die Startklasse sein kann/darf/muss? Ist es also besser in die Startklasse nur main() reinzuschreiben und alles andere in entsprechend eigenständige Klassen? Sollte ich für jede Klasse eine eigene Datei nutzen, etc.?

    Da ich bislang um OOP einen großen Bogen gemacht habe, gibt es gewisse Barrieren zu überwinden. Ich muss mich erstmal reindenken in das Objekt-Zeugs.

    Ciao...



  • Kal El schrieb:

    Wenn ich das nun richtig verstanden habe, dient die Klasse, in der main() definiert ist, nur als Vehikel, um die Anwendung überhaupt zum Laufen zu bewegen, oder?

    Der Punkt ist der: In Java ist alles eine Klasse. 🕶 -> Du MUSST OOP programieren!

    Zu Deiner Frage:
    Nicht unbedingt.

    class MegaMaessigeGUI extends Frame
    {
       // Konstruktor, 1000 Methoden, bla
    
       static void main(String[] args)
       {
           Frame fr = new MegaMaessigeGUI();
       }
    }
    


  • Sgt. Nukem schrieb:

    Der Punkt ist der: In Java ist alles eine Klasse. 🕶 -> Du MUSST OOP programieren!

    Den "🤡" hast du hoffentlich nur vergessen.



  • Bashar schrieb:

    Sgt. Nukem schrieb:

    Der Punkt ist der: In Java ist alles eine Klasse. 🕶 -> Du MUSST OOP programieren!

    Den "🤡" hast du hoffentlich nur vergessen.

    Ganz genau. Sowie ein 'm'... 🤡


Anmelden zum Antworten