ich habe vor nicht all zu langer Zeit mit Programmieren/Scripten angefangen und mich beschäftigt schon länger eine Frage zur Objektorientierten Programmierung.
Bei der prozeduralen Programmierung wird ja einfach eine Abfolge von Befehlen abgearbeitet, nach der das Programm sich, ohne Sondermassnahmen, beendet.
Wenn ich in Java mit OOP folgenden Code ausführe, passiert genau dasselbe:
Java:
publicclassMain{publicstaticvoidmain(String[] args){ObjektX objekt =newObjektX();}}
Die IDE zeigt das Ende des Programms ohne eigenes Zutun an.
DOCH: Wenn ich zum Beispiel ein GUI-Objekt (JFrame) erzeuge, stirbt dieses nicht.
mit einem Frame wird auch mindestens ein separater Thread gestartet, der sich um das Zeichnen der GUI und die Verarbeitung von Benutzereingaben kümmert,
solange mindestens ein Thread läuft, ist das Programm nicht beendet,
die main-Methode ist ein Thread, andere können auch gestartet werden und parallel laufen
----
denkbar wäre aber auch, dass im FrameX-Konstruktor ganz ohne GUI einfach eine Endlosschleife steckt
Meinst du mit dem seperaten Thread die abzuarbeitenden Codezeilen aus dem JFrame-Konstruktor oder steckt da mehr dahinter?
Weil, wenn ich selbst eine Klasse schreibe, dort durch den Konstruktor Dinge erledigen lasse, so wird das Programm ja nicht am Beenden gehindert.
Das mit der Endlosschleife verstehe ich, aber ist das in jedem Fall eine Endlosschleife, die das Programm am Leben haelt?
der Konstruktor-Code ist es nicht,
in den hunderten Methoden, die bei der Initialisierung intern aufgerufen werden, steht irgendwo auch ganz normal "new Thread(..).start()",
das könntest du auch selber in einer eigenen Klasse programmieren,
wenn nicht, dann gibt es dagegen keinen Grund, nach main() das Programm nicht zu beenden
der Konstruktor-Code ist es nicht,
in den hunderten Methoden, die bei der Initialisierung intern aufgerufen werden, steht irgendwo auch ganz normal "new Thread(..).start()",
das könntest du auch selber in einer eigenen Klasse programmieren,
wenn nicht, dann gibt es dagegen keinen Grund, nach main() das Programm nicht zu beenden