Java - Quellcode organisieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Tagedieb
Beiträge: 197
Registriert: 05.02.2006 20:26:18
Lizenz eigener Beiträge: MIT Lizenz

Java - Quellcode organisieren

Beitrag von Tagedieb » 05.03.2012 21:06:06

Liebes Forum,
ich beschäftige mich derzeit mal wieder ein bisschen mit Java und wollte mal fragen wie man da möglichst sinnvoll Klassen einbindet usw.

Ich habe ein Projekt "Uebung" :
Dazu gehört ein Package "Uebung" mit
* der "public class Uebung" (die auch die Methode main beinhaltet)
* sowie ein paar weiteren Klassen.

Im moment mache ich es immer so, dass das Erzeugen von Klassenobjekten, sowie der Aufruf von Klassenmethoden immer innerhalb der einen main Methode der "public class Uebung" abläuft und das gefällt mir irgendwie nicht, weil das mit der Zeit irgendwie schrecklich unübersichtlich wird.

Ist es sinnvoll das Erzeugen von Objekten, sowie den Aufruf von set- und get-Methoden in eine Funktion innerhalb der jeweiligen Klassendefinition zu packen, und in "main" nur noch diese Funktionen aufzurufen?

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Java - Quellcode organisieren

Beitrag von michaels » 05.03.2012 21:18:38

Hallo,

die main-Methode ist eigentlich nur der Startpunkt einer (Java-)Anwendung. Dann erzeugt man normalerweise (sofort) eine Instanz einer (zentralen) Klasse und macht hier dann alles weitere (neue Klassen erzeugen, Methode aufrufen etc).

also in main nur:
- neue Instanz erzeugen

Code: Alles auswählen

DeineAppKlasse app = new DeineAppKlasse();
app.initMyApp();
Jetzt kann man in initmyApp alles weitere prüfen (Übergabeparameter, Umgebung, Betriebssystem etc) und dann gehts weiter...

Packagenamen werden übrigens immer klein geschrieben und sollten mit einer Domain beginnen:
de.debianforum.uebung

Benutzeravatar
Tagedieb
Beiträge: 197
Registriert: 05.02.2006 20:26:18
Lizenz eigener Beiträge: MIT Lizenz

Re: Java - Quellcode organisieren

Beitrag von Tagedieb » 05.03.2012 21:47:00

Das ging ja fix :-)
Danke Dir.

Wenn ich das richtig verstanden habe, erstelle ich mir also zuerst mein package localhost.uebung mit einer Hauptklasse uebung.java.
Für alle weiteren Klassen erstelle ich zwei Klassen:

Beispiel_Klasse1: um zum einen die Klassenvariablen, Methoden, etc. zu definieren. Und
Beispiel_Klasse1_App: um mit den Objekten der obigen Klasse zu arbeiten.

Und in main wird dann nur eine Instanz von Beispiel_Klasse1_App erzeugt und anschließend die entsprechende Methode aufgerufen.

Ist das so in Ordnung ?

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Java - Quellcode organisieren

Beitrag von michaels » 05.03.2012 21:53:29

1. Klassennamen fangen Groß an und dann in CamelCase (Beispiel: "DeineSuperKlasse").

2.Allgemeine Tipps zu geben, ist da gar nicht so leicht. Man muss sich die "Objektorientierte" Denkweise schon ein wenig antrainieren.
Eigentlich musst du dir mal überlegen, was dein Programm machen soll und aus welchen Teilen/Elementen es besteht. Dann erstellst du für die einzelnen Aufgaben/Elemente eigene Klassen, die alle nötigen Informationen (Variablen) enthalten und alle nötigen Aktionen (Methoden) ausführen können.
Die Kombination aus den Einzelteilen ergibt dann das Programm...(in der Theorie *g*)

Benutzeravatar
Tagedieb
Beiträge: 197
Registriert: 05.02.2006 20:26:18
Lizenz eigener Beiträge: MIT Lizenz

Re: Java - Quellcode organisieren

Beitrag von Tagedieb » 05.03.2012 22:01:53

Mein momentanes Problem ist, dass ich verschiedene Uebungen mache, und hin und wieder nachsehen möchte, wie ich denn dieses oder jenes in Aufgabe X gelöst habe, etc.
Ich habe also ein Projekt und viele Klassen, die an sich gar nichts miteinander zu tun haben. Die Variante, dass ich zu jeder Klasse nun aber einfach noch eine zusätzliche Applikationsklasse mit Innit-Methode erstelle (die dann in main aufgerufen wird), macht mir das ganze aber schonmal wesentlich übersichtlicher.
Aber für heute lass ich es jetzt glaub ich auch mal gut sein.

Danke nochmal!

Antworten