Java Klassen Design?

coco07

Bekanntes Mitglied
Hey Community,

ich habe mal eine Frage bezüglich der Klassendesigns.

Wenn ihr ein neues Projekt anfangt, beispielweise ein Spiel. Fangt ihr einfach an zu programmieren oder überlegt ihr euch vorhher genau, was jede einzelne Klasse zu tun hat?
Ich schreibe gerade ein Schiffeversenken und weiß nichtgenau wo ich anfangen soll, bzw. wieviel Klassen ich brauche. Um beim Schiffeversenken zu bleiben, würde ich am Anfang 2 Klassen schreiben. Eine für das Spielfeld und die nächste für jedes Schiff.

Das Spielfeld enthält allgemeine Informationen wie:

boolean spielLaeuft;
boolean gameOver;

Schiff[] schiffe;

Ein Schiff enthält Informationen wie z.B.

int[] zellenOrte;
boolean versenkt;
boolean getroffen;

Wäre das eine saubere Verwaltung der Klassen? Ich weiß immer nicht, wie weit ich das unterteilen soll.
Für das Spiel Candy Crush Saga würde ich folgende Klassen schreiben:
Bonbon - Klasse
Spielfeld - Klasse

Dabei enthält jedes Bonbon seine eigene Texture und seine Position.
Wenn der Spieler im Spiel 2 Bonbons miteinander tauscht, würde ich das an die Spielfeld Klasse schicken, welche dann weitere Überprüfungen mit den Bonbons vornimmt.

Gibts da eine allgemeine Anleitung ?

grüße coco07!
 

Supra

Bekanntes Mitglied
Hi coco07,
das kommt ganz darauf an was dein Spiel können soll. Ich selber bin noch am lernen und hab noch nicht alles drauf.
Aber als erstes sollte dir Klar werden was es können/bezwecken soll und dies in Anforderungen schriftlich festhalten, am besten so das du hinterher prüfen kannst ob diese Anforderung erfüllt(messbar) sind. Dazu mache ich ein Klassendiagramm, aber das folgt erst spät danach.
Möchtest du zum Beispiel noch statistiken der Spiele bzw. Spieler sammeln??? Dann wäre zum Beispiel eine Klasse: Spieler auch sinnvoll. Nur als Beispiel :D, es gibt noch viel mehr Sachen.

Zu deiner Frage ob deine Aufteilung sinnvoll/sauber ist, möchte ich nichts sagen, sie ist sicherlicht ein guter Anfang,da dein Spiel wahrscheinlich einfach gehalten werden soll, da brauchst du denke ich nicht so viele Klassen. Aber als Tip, Du kannst die meist noch versuchen andere Lösung zu überlegen und dann gucken was die Vorteile und Nachteile sind und welche sinnvoller sind.

Ich hoffe ich konnte dir ein bischen weiter helfen.

Gruß
 
Zuletzt bearbeitet:

Natac

Bekanntes Mitglied
Ich fang mit der Gui an, und lasse die Methoden der Klassen erstmal leer. Auf diese Art weiß ich später, was genau ich brauche, und was nicht.

Wenn die Gui dann steht, werden so lange alle Methoden implementiert, bis es funktioniert.
 

Supra

Bekanntes Mitglied
Hi,
die vorangehensweise von Natac kann man machen, ist aber unschön, wenn du eine neue GUI aufsetzen willst musst Du alles umstrukturieren und neu programmieren. Normalerweise ist das nicht die Art. Ich habe auch noch nie jemand getroffen der das macht.

Gruß
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Ich bin der Meinung das kommt immer auf den Umfang der zu Programmierenden Anwendung an ,
für kleine Projekte die nicht nach dem MVC Pattern umgesetzt werden kann man entweder wie Natac schon beschrieben hatte erst die Gui erstellen und dann schauen welche Methoden man implementieren muss, oder man geht wirklich stark OO
an die Sache heran und hält sich an Konventionen, und hält alles so Atomar wie nur irgend möglich , bedeutet man macht sich vorher Gedanken welche "Bausteine" man zum erstellen der Applikation benötigt, und setzt diese dann um , wenn noch bestimmte dinge fehlen sollten kann man diese im nach hinein immer noch implementieren.

Mit der Zeit gewöhnt man sich eh eine eigene Herangehensweise an, grundsätzlich sollte man die Klassen immer so designen das sie unabhängig von Plattform oder Darstellung sind, sprich Klassen und Methoden sollten immer nur eine Aufgabe haben, für welche sie Zuständig sind.
 

Dexkill

Neues Mitglied
Also ich habe bereits relativ viel erfahrung beim programmieren von Spielen "von 0 auf 100" also in purem Java, ich würde sagen Programmier drauf los - du wirst nen punkt erreichen an dem es dir keinen spaß mehr macht weitere Funktionen hinzu zu fügen, aber das ist nicht schlimm - dann sagst du dir einfach beim nächsten mal mach ich das viel objekt orientierter.

Ich fange immer mit dem selben anfangscode an - ner Thread/Canvas/Runnable Game Klasse,
also habe ich mir den Code so zurecht geschnitten und bei seite gelegt das ich ihn immer wieder verwenden kann ;)

Ich arbeite momentan an einem eigenen 2D Framework für Java namens "HoodJE", ich denke das kann helfen :) ich werde das hier auch sobald wie möglich als Projekt veröffentlichen muss halt nur herausfinden wie das hier geht ;(

LG
Dexkill
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
T Wie finde ich passende Java Klassen & Methoden? Java Basics - Anfänger-Themen 4
I Klassen Mehrere Java Klassen in einer .java Datei Java Basics - Anfänger-Themen 7
lonelywanderer Erste Schritte Wie wende ich "Klassen" in Java an? Java Basics - Anfänger-Themen 8
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
M xml log4j überschreiben für/in Java Klassen Java Basics - Anfänger-Themen 4
M OOP Java Klassen Microedition vs. Java 2 Standard Edition Java Basics - Anfänger-Themen 5
S Innere Klassen in Java Java Basics - Anfänger-Themen 4
M Wie bilde ich folgende Java Klassen in UML ab Java Basics - Anfänger-Themen 2
J Java-Klassen außerhalb von Eclipse debuggen Java Basics - Anfänger-Themen 7
D Java Klassen Java Basics - Anfänger-Themen 8
K OOP Java import zwei gleichnamiger Klassen Java Basics - Anfänger-Themen 5
M java erkennt import-klassen nicht?! Java Basics - Anfänger-Themen 39
J In JSP Java-Klassen einbinden Java Basics - Anfänger-Themen 3
N Aufrufen von .java Klassen in einem Projekt Java Basics - Anfänger-Themen 2
I [Java] Umgang mit abstrakten Klassen, Interfaceklassen (BSP) Java Basics - Anfänger-Themen 12
M Problem mit dem Klassen aus dem java.io Paket Java Basics - Anfänger-Themen 9
M Aus wieviel Klassen darf in Java eine (Programm)besitzen? Java Basics - Anfänger-Themen 21
G Anzahl der Klassen in Java Java Basics - Anfänger-Themen 7
A von Java-Beans Klassen aufrufen Java Basics - Anfänger-Themen 3
G Frage zum Abspeichern von Java-Klassen Java Basics - Anfänger-Themen 9
G Aufruf von JAVA-Klassen aus XML-Dialekt, Java-Skript o. JSP Java Basics - Anfänger-Themen 3
N Java Klassen kommentieren? Java Basics - Anfänger-Themen 13
G Java Programm das Klassen Implementiert Java Basics - Anfänger-Themen 5
F Java Klassen finden Java Basics - Anfänger-Themen 3
I Java Applet mit Klassen Java Basics - Anfänger-Themen 5
T Java Klassen benennung? Java Basics - Anfänger-Themen 4
L Java applet und andere Klassen unauffindbar? Java Basics - Anfänger-Themen 2
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben