OOP Ticketsystem programmieren

sinso01

Neues Mitglied
Guten Tag,
Ich möchte im Moment gerne ein (simples) Flugticketsystem in Java programmieren. Dieses Projekt soll mit OOP realisiert werden. Ich habe im Moment einen Denk-Fehler bzw. weiß nicht genau was hier bez. OOP die beste Lösung ist.
Grundsätzlich soll das Programm im ersten Anlauf bestehen aus diesen Klassen:
Passagier(Vorname,Nachname)
Flug(Airline,Datum,Nummer,Route)
Route(Datum,source,destination)
Eine J-Unit-Testklasse

So, nun habe ich mir überlegt, neben den gettern+settern natürlich das die Klasse Passagier eine Methode bucheFlug(Datum,von,nach) hat. Nun muss ich überprüfen ob es in der Datenbank(oder in meinem Fall in einer simplen Liste) einen Flug an diesem Datum und von diesem Ort an den Zielort gibt. Wenn ja, soll der Passagier in die PassagierListe des Flugs aufgenommen werden.

Jetzt habe ich hier das Problem: Damit ich in der Methode bucheFlug prüfen kann ob ein Flug + Route existiert muss ich dort doch ein neues FlugObjekt erzeugen damit ich prüfen kann ob der Flug existiert(die Route-Klasse steht nur mit dem Flug in Beziehung und in der Flug-Klasse gäbe es eine Methode wie: checkRoute() damit ich auf das Routen-Objekt(Liste von Routen) abfragen kann.). Das kann so aber nicht funktionieren oder? Dazu müsste ich ein Flugobjekt erstellen(und dazu muss ich schon alles angeben(Airline,Datum,Route), und das will ich ja erst gerade prüfen ob es das überhaupt gibt damit ich danach sagen kann: Flug erfolgreich gebucht oder Kein Flug vorhanden.

Könnte mir jemand sagen ob ich vom Gedanken falsch bin bzw. wie ich die Methode bucheFlug am besten umsetzen könnte?
 

mrBrown

Super-Moderator
Mitarbeiter
Ich würde zusätzlich zu deinen Klassen eine Klasse "Flughafen" oä nutzen, darüber kann dann sie Suche nach Flügen und auch das Buchen derselben stattfinden.

checkRoute in der Flug-Klasse macht ja nicht viel Sinn - warum sollte denn ein Flug prüfen können, ob Flüge auf einer anderen Route stattfinden ;)
 

Tobse

Top Contributor
Ich verstehe nicht, warum du ein Flugobjekt zum suchen nach einem Flug brauchst. Wenn du mich fragst, ist genau das der Fehler.

EDIT:
Eine Testklasse? Wenn du das mit dem Testen ernst meinst, brauchst du für jede Klasse, welche mehr macht als Properties getten und setten, eine eigene Testklasse.
 

Meniskusschaden

Top Contributor
So, nun habe ich mir überlegt, neben den gettern+settern natürlich das die Klasse Passagier eine Methode bucheFlug(Datum,von,nach) hat.
Ich finde es naheliegender, Flug eine Buchungsmethode zu geben. Dann kann man nur Flüge buchen, die es gibt und es sollte keine Flüge geben können, die keine Route haben.
Route(Datum,source,destination)
Mir leuchtet nicht ein, warum Route ein Datum hat.
 

Thallius

Top Contributor
Deine Hauptklasse, in der Regel ist das halt Main, muss natürlich eine Liste aller Flüge halten. Sonst wird das nichts.

Wenn du diese Liste hast, kannst du diese auch an die Klassen weitergeben die diese brauchen.

Den Rest finde ich ok so.

Gruß

Claus

@Meniskusschaden ich denke nicht das eine Route 24/7 geflogen wird sondern z.b. Nur montags um 11.30. dafür ein Datum zu nehmen kann sinnvoll sein muss es aber nicht. Je nachdem wie gerne man mit Daten rum bastelt.
 

sinso01

Neues Mitglied
Hallo,
Danke für die Antworten!
Ich habe hier das Klassendiagramm angehängt wie ich es mir im Moment vorstelle(Hier ist auch der Airport enthalten).

Nur nochmal kurz erklärt wie ich mir das System vorstelle und die Frage ob das so zu realisieren ist.
Generell möchte ich hier eine JUnit-Testklasse schreiben welche die Funktionalität des Systems prüft, das heißt:
Ich erzeuge im Test einen Passagier. Mit diesem Passagier-Objekt rufe ich die Methode bookFlight mit zB München-Frankfurt 01.05.2017 auf. Nun prüfe ich, ob eine Route an diesem Datum existiert(Der Flug hat 1 Route(wenn existiert) und in der getRoutes() von der Route-Klasse soll geprüft werden ob eine Route existiert), wenn ja, gebe ich die Meldung - Flug OK zurück und setze den Passagier auf die Passagierliste des Flug-Objekts. Wenn es keine Route gibt, erscheint eine Fehlermeldung.
Ich mache das zb mit 3 Passagierobjekten und prüfe nachher ob die Anzahl der Passagierliste 3 entspricht.

Nach wie vor weiß ich noch nicht wie ich das am besten starte. Wenn ich die Methode bookFlight(..) beim Passagier lasse muss ich irg wie überprüfen können ob ein Flug mit den Daten existiert oder ich einen Fehler retourniere. Und das Prüfen ob ein Flug existiert kann ich nur über die Route, die abgefragt werden muss.
Den Passagier direkt mit der Route-Klasse zu verbinden macht doch wahrscheinlich auch keinen Sinn nehme ich an.
 

Anhänge

  • FlightSystem.png
    FlightSystem.png
    16,8 KB · Aufrufe: 67

mrBrown

Super-Moderator
Mitarbeiter
Wie schon gesagt, verknüpf das ganze über den Airport (oder wenn man noch weiter abstrahiert, erstell einen BuchungsService, der alle Airports kennt).
Stell dir vor, wie du es machst, wenn du einen echten Flug buchst, du suchst ja nicht ein Flugzeug, und fragst dessen Piloten, sondern nutzt irgendeine übergeordnete Instanz.

Der Airport kann dabei durchaus auch der bookFlight-Methode übergeben werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Ticketsystem in Java programmieren Java Basics - Anfänger-Themen 57
A GUI bequemer programmieren? Java Basics - Anfänger-Themen 6
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
L Zahlenspiel programmieren Java Basics - Anfänger-Themen 1
TimoN11 Automat programmieren Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
N Ufospiel programmieren Java Basics - Anfänger-Themen 13
KogoroMori21 Vorbereitung auf die Programmieren Klausur vom ersten Semester Java Basics - Anfänger-Themen 4
Drinkerbell Erste Schritte Zu blöd zum Programmieren? Java Basics - Anfänger-Themen 9
G Stack programmieren Java Basics - Anfänger-Themen 6
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
S Kreisberechnung3 Buch: Programmieren lernen mit Java von Hans-Peter Habelitz Java Basics - Anfänger-Themen 39
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
K Java programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Kontrolle des Quelltextes (Bank programmieren)(GUI) Java Basics - Anfänger-Themen 6
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
N Ticketautomat programmieren Java Basics - Anfänger-Themen 63
M Rechner programmieren Java Basics - Anfänger-Themen 3
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
J Java Suchfunktion Programmieren Java Basics - Anfänger-Themen 1
L Erste Schritte Bin ich "zu dumm" oder nicht geeignet zum Programmieren? Java Basics - Anfänger-Themen 3
U Ist jemad gut in programmieren (JAVA) und kann mir helfen? Java Basics - Anfänger-Themen 1
H Uhr programmieren Java Basics - Anfänger-Themen 10
T Schalter programmieren Java Basics - Anfänger-Themen 17
S Ampel Programmieren Java Basics - Anfänger-Themen 5
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
V Zeichenkette programmieren Java Basics - Anfänger-Themen 20
O Fenster programmieren Java Basics - Anfänger-Themen 2
R Uebersichtlicher bzw. besser Programmieren Java Basics - Anfänger-Themen 13
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
B Spielfiguren für ein Beute-Jägerspiel programmieren Java Basics - Anfänger-Themen 12
A Programmieren lernen Java Basics - Anfänger-Themen 28
F ArrayListe manuell programmieren? Java Basics - Anfänger-Themen 24
X Erste Schritte Einstieg ins Programmieren Java Java Basics - Anfänger-Themen 2
O Erste Schritte ln(1+x) Reihe Programmieren Java Basics - Anfänger-Themen 6
Ellachen55 Weihnachtsbaum in Eclipse programmieren Java Basics - Anfänger-Themen 6
L Klassen Geldrückgabe - Aufgabe Programmieren Java Basics - Anfänger-Themen 23
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
V Variablen Vorkommen programmieren Java Basics - Anfänger-Themen 18
S Dreieckssignal programmieren Java Basics - Anfänger-Themen 5
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
M Spiel programmieren Java Basics - Anfänger-Themen 16
A Fenster programmieren Java Basics - Anfänger-Themen 1
V OOP Kassensystem objektorientiert programmieren Java Basics - Anfänger-Themen 15
A Erste Schritte DoodleJump programmieren: Kollisionsabfrage Java Basics - Anfänger-Themen 4
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
D Könnt ihr mir helfen beim Programmieren eines Ping Pong Spieles? Java Basics - Anfänger-Themen 9
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
I Spielbrett programmieren: Datenstruktur Java Basics - Anfänger-Themen 3
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
A Endlich anfangen mit Programmieren ! Java Basics - Anfänger-Themen 8
L Karawane programmieren Java Basics - Anfänger-Themen 0
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
steven789hjk543 Erste Schritte java programmieren/ Schritt für Schritt Java Basics - Anfänger-Themen 14
I Spiel programmieren. Java Basics - Anfänger-Themen 16
H [Studium] Mäxchenspiel programmieren Java Basics - Anfänger-Themen 10
C BlueJ Zahlenschloss programmieren Java Basics - Anfänger-Themen 5
steven789hjk543 mit dem Smartphone java programmieren Java Basics - Anfänger-Themen 44
F Okjektorientiert programmieren Java Basics - Anfänger-Themen 2
P Selber Programmieren lernen oder Uni? Java Basics - Anfänger-Themen 12
P Kasse programmieren Java Basics - Anfänger-Themen 12
D Timer programmieren Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben