Mein erstes eigenes Projekt - Aufbau und Strukturierung

Sebel00

Mitglied
Hallo zusammen,

ich möchte mich jetzt an meinem ersten eigenen Projekt versuchen, da ich das Gefühl habe, ich kann mir noch so viele Tutorials anschauen, aber dieses nachmachen, was im Tutorial gezeigt wurde bringt mir am Ende nichts.

Als Projekt habe ich mir ein Haushaltsbuch (als Kastensystem) ausgesucht, weil ich so etwas in Excel schon mal gemacht habe und ich daraus einige Dinge ableiten wollte.

Die Struktur in Excel ist wie folgt.

Tabelle 1 = Einnahmen
Tabelle 2 = Fixkosten für Lebensnotwendiges (z.B. Miete, Lebensmittel...)
Tabelle 3 = Kosten für nicht lebensnotwendige Dinge (z.B. Sportverein, Freizeitaktivitäten...)
Tabelle 4....

Nun zu meiner Frage.

Leider kann ich keinen Einstiegspunkt finden. Ich habe die einzelnen Kategorien (Fixkosten) als Klasse definiert, in dieser Klasse muss ich nun die einzelnen Punkte definieren, wie z.B. Miete oder Lebensmittel, aber leider habe ich keine Ahnung, ob ich das als Liste implementiere oder diese Punkte Attribute sind. Gibt es dazu eine Hilfe, wie ich etwas strukturiert aufbauen kann ?
 

Robert Zenz

Top Contributor
Du kannst das hart in den Code schreiben, oder du machst es als Daten. Also zum Beispiel dass du aus einer CSV-Datei einliest welche Fixkosten es gibt. So zum Beispiel:

Code:
Miete;350

Das liest du dann aus (Vorzugsweise mit einer Lib, CSV parsen ist nicht lustig) und erstellst dir daraus mehrere Instanzen deiner Fixkosten-Klasse. Eine Zeile, eine Instanz. Das gleiche machst du auch fuer andere Kosten und Einnahmen.

In deinem Programm liest du dann die CSV Dateien nacheinander ein, wandelst diese in diese Klassen um und kannst dann dort damit arbeiten zur Laufzeit.
 

temi

Top Contributor
Ich würde mir erst mal ein Stück Papier (oder ein Whiteboard oder ein Tool wie draw.io) hernehmen und etwas "malen", um mir selbst über die benötigten Daten und deren Zusammenhänge ein Bild zu machen. Erst danach, solltest du mit dem Code beginnen.

Exemplarisch könntest du sagen, dass ein Eintrag im Haushaltsbuch einer "Buchung" entspricht. Eine Buchung hat ein Buchungsdatum, einen (positiven oder negativen) Wert, eine Art Tag (oder Kategorie), einen Kommentar. Das entspricht dann schon fast der abzubildenden Klasse mit ihren Eigenschaften.

Manche Eigenschaften sind dann einfache Datentypen oder vielleicht auch eigene Klassen (falls noch weitere Informationen oder Voraussetzungen daran geknüpft sind). So könnte die Kategorie eine eigene Klasse sein. Ein String würde zwar funktionieren, aber der Benutzer kann mehr oder weniger frei Text eingeben, so dass es zu Fehlern kommen kann: "Lebensmittel" <=> "Lebensittel". Das könntest du vermeiden, indem Kategorie eine eigene Klasse ist, mit einer Eigenschaft Name, und du eine (erweiterbare) Liste von mehreren Kategorien hast, aus welche der Benutzer auswählen und sie einer Buchung zuordnen kann.

An dieser Stelle könntest du bereits folgende Klassen (Namen bitte besser wählen) haben: Buchung, Buchungsliste, Kategorie, Kategorieliste.

EDIT: Nachdem du "gemalt" hast, kannst du den Entwurf ja gerne hier zeigen.

EDIT: Ich habe gerade an einen etwas älteren Beitrag von mir denken müssen, in dem über mehrere Seiten über den Entwurf einer Lagersoftware diskutiert wird. Falls du mutig genug bist, kannst du da mal einen Blick drauf werfen. Die Software wurde dann leider nie benötigt, weil inzwischen eine SAP-basierte Lösung geschaffen wurde. :(
 
Zuletzt bearbeitet:

temi

Top Contributor
Wieso ist der Thread damals eigentlich eingeschlafen?
Die meisten Fragen meinerseits waren beantwortet. War aber wirklich stark, das zusammen so zu machen. Das hat mir sehr viel gebracht, auch in Hinblick auf die praktische Umsetzung von DDD. Danke nochmal, du warst damals ja auch beteiligt.
 

mihe7

Top Contributor
Nur ein wenig. Allerdings war das oben mehr Ausdruck der Verwunderung, dass da plötzlich weder von mrBrown, mir oder AndieE (oder sonst einem der Beteiligten, den ich gerade übersehen habe) noch etwas kam. Das war ja noch nicht abschließend behandelt :) Irgendwie übersehen (oder der Rest ist Opfer der DB geworden).
 

mrBrown

Super-Moderator
Mitarbeiter
Um das von @temi noch zu ergänzen: Als aller-erster Schritt ist meistens erstmal ein einfaches "mit Worten beschreiben" sinnvoll, so wie @temi das ja im zweiten Absatz auch gemacht hat. Darin kann man einfach mal alle Nomen unterstreichen:

Exemplarisch könntest du sagen, dass ein Eintrag im Haushaltsbuch einer "Buchung" entspricht. Eine Buchung hat ein Buchungsdatum, einen (positiven oder negativen) Wert, eine Art Tag (oder Kategorie), einen Kommentar. Das entspricht dann schon fast der abzubildenden Klasse mit ihren Eigenschaften.

Damit erwischt man meistens schon alle wichtigen Dinge (je "besser" die Beschreibung, desto einfacher ist das und desto besser das Ergebnis), und kann daraus dann wunderbar Diagramme ableiten (die das ganze einfacher darstellen und mit denen man besser weiter arbeiten kann) und das ganze schon in grobe Klassen unterteilen.

Alles, was "etwas anderes" enthält, kann man auf jeden Fall schon mal als Klasse modellieren:

Es ging eine Klasse "Haushaltsbuch", die hat mehrere Buchungen (= Liste von "Buchung").
Dann eine Klasse "Buchung", die Buchungsdatum, Wert, Kategorie & Kommentar hat – da jeweils nur eins und keine Liste einfach als normale Attribute

Alles andere, z.B. Buchungsdatum und Wert, kann man entweder als Klasse modellieren (@temi hat ja ein Beispiel genannt), oftmals reicht es aber auch, den passenden "primitiven" Typ dafür zu finden: Für ein Buchungsdatum reicht z.B. ein Datum, zB LocalDate, und für Wert ein int, um Cent darzustellen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M OOP Mein erstes Textadventure... Java Basics - Anfänger-Themen 3
M Mein erstes Programm Java Basics - Anfänger-Themen 3
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
T mein erstes Java projekt Java Basics - Anfänger-Themen 8
1 Mein erstes Programm, HELP!! Java Basics - Anfänger-Themen 2
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
D Mein erstes Programm flackert Java Basics - Anfänger-Themen 5
B Methoden Mein erstes Programm - und gleich Probleme Java Basics - Anfänger-Themen 6
M Sammlung von Anfängerfragen für mein erstes Programm Java Basics - Anfänger-Themen 15
P Mein erstes JAR-File Java Basics - Anfänger-Themen 8
L Suche Verbesserungsvorschläge für mein erstes Programm Java Basics - Anfänger-Themen 34
Bierhumpen mein erstes großes Programm. Was ändern? verbessern? Java Basics - Anfänger-Themen 12
A Mein erstes Programm Java Basics - Anfänger-Themen 6
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
T Mein Programm hat Fehler Java Basics - Anfänger-Themen 4
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
S Wie ende ich mein Pogrammierung? [Hilfe] Java Basics - Anfänger-Themen 1
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Mein Programm beendet sich ohne mein Zutun Java Basics - Anfänger-Themen 9
A Eine Krone in der Textausgabe - Mein Code Java Basics - Anfänger-Themen 11
M Warum berechnet mein Primzahlenprog zu hohe Zahlen nicht? Java Basics - Anfänger-Themen 20
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
x-tshainge Mein Programm lässt sich nicht Starten Java Basics - Anfänger-Themen 8
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 12
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 6
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
W Erste Schritte Warum funktioniert mein Programm nicht ? ~if Anweisung~ Java Basics - Anfänger-Themen 4
A Erste Schritte Mein Programm erkennt die variable EinAus.readInt nicht Java Basics - Anfänger-Themen 15
N Warum terminiert mein Programm nicht? Java Basics - Anfänger-Themen 13
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
A Mein 1x1 Programm funktioniert nicht? Java Basics - Anfänger-Themen 2
G Input/Output Wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
G Variablen Was ist mein Fehler? Java Basics - Anfänger-Themen 2
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
W Compiler-Fehler Fehler - <identifier> expected, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
N mein RegEx Java Basics - Anfänger-Themen 2
N Mein Bubblesort sortiert mein Array nicht Java Basics - Anfänger-Themen 2
W Wie hat mein Lehrer das gemacht. Java Basics - Anfänger-Themen 2
Z Klassen Warum wird mein Objekt nicht erkannt? Java Basics - Anfänger-Themen 2
J Erste Schritte Zweithöchster Wert eines Arrays herausfinden - warum klappt mein Code nicht? Java Basics - Anfänger-Themen 3
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
C Mein Video zu Java Grundlagen Java Basics - Anfänger-Themen 8
T Eclipse kennt mein Button nicht... Java Basics - Anfänger-Themen 5
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
D Brauche Hilfe für mein übungsprogramm Java Basics - Anfänger-Themen 16
T Mein String in ein JLabel stecken Java Basics - Anfänger-Themen 2
H Kann ich mein Programm vereinfachen? Java Basics - Anfänger-Themen 3
J Methoden Wo ist mein Fehler ?! Java Basics - Anfänger-Themen 9
R .txt in mein Javaprogramm hineinschmelzen Java Basics - Anfänger-Themen 6
S Mein Code is unübersichtlich - besseren Stil Java Basics - Anfänger-Themen 6
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
H Probleme mein Ausführen der .class (Ubuntu JDK6) Java Basics - Anfänger-Themen 2
M Mein TableEvent problem Java Basics - Anfänger-Themen 3
C Boolsche Ausdrücke - Wo ist mein Fehler? Java Basics - Anfänger-Themen 14
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
M Warum wird mein Icon bei den JTree Nodes nicht angezeigt? Java Basics - Anfänger-Themen 7
K Mein Programm... Heute: Settings-Datei in .jar speichern und auslesen Java Basics - Anfänger-Themen 9
M Kann mein Java Programm nicht starten Java Basics - Anfänger-Themen 6
V Mein erster Konstruktor Java Basics - Anfänger-Themen 3
S GaussJordan in Java, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
O Warum terminiert mein Programm nicht!? Java Basics - Anfänger-Themen 15
U2nt Mein Chat Java Basics - Anfänger-Themen 10
S Wo ist mein Fehler? Java Basics - Anfänger-Themen 2
I OOP This-Referenzs > wo liegt mein Denkfehler? Java Basics - Anfänger-Themen 24
L Hashtable nicht wirklich geeignet für mein Vorhaben? Java Basics - Anfänger-Themen 3
W ArrayListe , Wo ist mein Fehler? Java Basics - Anfänger-Themen 6
H wie bekomm ich ein Foto in mein Programm rein? Java Basics - Anfänger-Themen 8
M Mein Externes Programm startet nicht Java Basics - Anfänger-Themen 13
M Timer unterbrechen? Wo ist mein Thread? Java Basics - Anfänger-Themen 2
S wieso ist mein Code falsch? Java Basics - Anfänger-Themen 2
S Mein Computer kennt "javac" und "java" nicht mehr! Java Basics - Anfänger-Themen 6
B XML? Für Uhrzeit und Datum für mein HP? Java Basics - Anfänger-Themen 6
JeromeM90 Mein Java Applet zeitverzögern ? Java Basics - Anfänger-Themen 2
Developer_X Mein erster Internet Explorer Java Basics - Anfänger-Themen 14
B könnte nochmal jemand über mein Projekt schauen? Java Basics - Anfänger-Themen 4
J Mein Objekt will nicht! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben