Ich habe da irgendwie gerade ein grundsätzliches tiefsitzendes Verständnisproblem, das über diese "Hello Word", "Was sind Klassen" Tutorials hinausgeht, ohne das jetzt abwertend zu meinen, vielleicht kann mir da jemand weiterhelfen.
Irgendwie schwirren mir nur noch Klassen, Objekte, Vererbung, Polymorphie, Interfaces, Event Handling Threading und alles mögliche durch den Kopf..
Also..
Wenn ich ein Java Programm schreibe, fange ich ja mit der Main Methode an und rufe eben irgendwelchen Code auf, lese Daten aus Dateien, übernehme Argumente von der Konsole, hole mir irgendwas aus einem SQL Server, wie auch immer.
Klassen verstehe ich momentan so, dass sie zum einen eine Auslagerung von Code sind, da ich ja Eigenschaften und Methoden nach Funktionalität sortiert in Klassen bringe. Dabei kann ich nutzen, das es von irgendwas mehrere Instanzen gibt, dann bilde ich Objekte. OK. Ich kann meine Klassen mit fremdem Code erweitern also erben, auch klar.
Klassen sind aber doch auch irgendwie Programme, die nicht notwendigerweise vom Hauptprogramm abhängen, sondern mit dem Hauptprogramm oder anderen Programmen desselben Systems nur zusammenarbeiten, indem sie autark Daten oder Funktion bereitstellen, sich autark um bestimmte Aufgaben kümmern usw.
Also beispielsweise habe ich vielleicht eine entkoppelte GUI, die mit meinem Hauptprogramm nur
kommuniziert, oder ich habe einen Nachrichtenserver der eigenständig auf eintreffende Nachrichten lauscht, diese verarbeitet und dann möglicherweise per Event, oder auf anderem Wege, mit anderen Teilen des Systems, oder dem Hauptprogramm kommuniziert. Oder ein Teilprogramm kümmert sich um umfangreiche Druckaufbereitungen und ich will da nicht drauf warten.
Natürlich kann ich eine Klasse, mit zum Beispiel einem Loop, oder Event Listerner versehen und irgend was bearbeiten.
Aber wie starte ich sowas autark, das stehe ich voll auf dem Schlauch.
Wenn ich eine Methode in einer anderen Klasse anspreche, egal ob statisch oder als Objekt, wartet mein Programm scheinbar auf Beendung, auch wenn es sich um eine Void Methode handelt.
Ich habe gelesen, dass in einem Paket mehrere Klassen mit Main Methoden sein dürfen. Aber wie starte ich die aus Java heraus? Ist das das Thema Threading?
Kann mich jemand erhellen? Ich finde da irgendwie nix gescheites dazu..
Vielleicht suche ich auch falsch..
Vielen Dank im Voraus
Ralf
Irgendwie schwirren mir nur noch Klassen, Objekte, Vererbung, Polymorphie, Interfaces, Event Handling Threading und alles mögliche durch den Kopf..
Also..
Wenn ich ein Java Programm schreibe, fange ich ja mit der Main Methode an und rufe eben irgendwelchen Code auf, lese Daten aus Dateien, übernehme Argumente von der Konsole, hole mir irgendwas aus einem SQL Server, wie auch immer.
Klassen verstehe ich momentan so, dass sie zum einen eine Auslagerung von Code sind, da ich ja Eigenschaften und Methoden nach Funktionalität sortiert in Klassen bringe. Dabei kann ich nutzen, das es von irgendwas mehrere Instanzen gibt, dann bilde ich Objekte. OK. Ich kann meine Klassen mit fremdem Code erweitern also erben, auch klar.
Klassen sind aber doch auch irgendwie Programme, die nicht notwendigerweise vom Hauptprogramm abhängen, sondern mit dem Hauptprogramm oder anderen Programmen desselben Systems nur zusammenarbeiten, indem sie autark Daten oder Funktion bereitstellen, sich autark um bestimmte Aufgaben kümmern usw.
Also beispielsweise habe ich vielleicht eine entkoppelte GUI, die mit meinem Hauptprogramm nur
kommuniziert, oder ich habe einen Nachrichtenserver der eigenständig auf eintreffende Nachrichten lauscht, diese verarbeitet und dann möglicherweise per Event, oder auf anderem Wege, mit anderen Teilen des Systems, oder dem Hauptprogramm kommuniziert. Oder ein Teilprogramm kümmert sich um umfangreiche Druckaufbereitungen und ich will da nicht drauf warten.
Natürlich kann ich eine Klasse, mit zum Beispiel einem Loop, oder Event Listerner versehen und irgend was bearbeiten.
Aber wie starte ich sowas autark, das stehe ich voll auf dem Schlauch.
Wenn ich eine Methode in einer anderen Klasse anspreche, egal ob statisch oder als Objekt, wartet mein Programm scheinbar auf Beendung, auch wenn es sich um eine Void Methode handelt.
Ich habe gelesen, dass in einem Paket mehrere Klassen mit Main Methoden sein dürfen. Aber wie starte ich die aus Java heraus? Ist das das Thema Threading?
Kann mich jemand erhellen? Ich finde da irgendwie nix gescheites dazu..
Vielleicht suche ich auch falsch..
Vielen Dank im Voraus
Ralf