Übung 3 - FlugBuchung.java

Benutzeravatar
a_ilgen
Erstie
Erstie
Beiträge: 15
Registriert: 15. Okt 2008 17:17
Kontaktdaten:

Übung 3 - FlugBuchung.java

Beitrag von a_ilgen »

In der Klasse "FlugBuchungsservice" soll nun die Methode Flugbuchen implementiert werden, hierzu müsste man auf das Interface FlugBuchung zugreifen. Da es aber ein Interface ist zwingt es einen dann alle Methoden dieses zu implementieren. Sollen wir das UInterface in eine Klasse umwandeln und die Methoden darin implementieren?

Oder mache ich da einen grundlegenden Fehler?

P.S. Flug ist ja auch kein interface
if(TUD.scherbenhaufen()) TUD.leave();

mitschke
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 184
Registriert: 10. Okt 2008 16:09

Re: Übung 3 - FlugBuchung.java

Beitrag von mitschke »

Hallo,

zum Lösen der Aufgabe ist es ausreichend die Interfaces zu implementieren und die Implementierungen an den entsprechenden Stellen zu nutzen. Umgewandelt werden sollte nichts.
Dipl.-Inform. Ralf Mitschke <mitschke@st.informatik.tu-...>

Software Technology Group

levitin
Kernelcompilierer
Kernelcompilierer
Beiträge: 435
Registriert: 7. Okt 2007 15:36
Wohnort: Darmstadt

Re: Übung 3 - FlugBuchung.java

Beitrag von levitin »

Code: Alles auswählen

public interface FlugBuchung // Name des Interfaces
public class InterneFlugBuchung implements FlugBuchung // Klasse, die den Interface implementiert

public FlugBuchung bucheFlug // Funktion
Frage: soll der RückgabeTyp der Funktion "bucheFlug FlugBuchung" (Interface) mit InterneFlugBuchung(Klasse) ersetzt werden?

burgi
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 115
Registriert: 15. Apr 2009 18:08
Wohnort: Ludwigshafen

Re: Übung 3 - FlugBuchung.java

Beitrag von burgi »

aehm,

wo hast du denn die InterneFlugBuchung gefunden ?

levitin
Kernelcompilierer
Kernelcompilierer
Beiträge: 435
Registriert: 7. Okt 2007 15:36
Wohnort: Darmstadt

Re: Übung 3 - FlugBuchung.java

Beitrag von levitin »

das ist die Klasse, die ich selbst im Package de.tud.eise.flugservice.spi angelegt habe, um den Interface FlugBuchung drin zu implementieren

burgi
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 115
Registriert: 15. Apr 2009 18:08
Wohnort: Ludwigshafen

Re: Übung 3 - FlugBuchung.java

Beitrag von burgi »

Wenn du die Klasse im .spi auch FlugBuchung nennst sollte sich dein Problem in Luft auflösen

levitin
Kernelcompilierer
Kernelcompilierer
Beiträge: 435
Registriert: 7. Okt 2007 15:36
Wohnort: Darmstadt

Re: Übung 3 - FlugBuchung.java

Beitrag von levitin »

mir ist einfach nur interessant, wie soll der Rückgabetyp aussehen, falls Interface und die Klassen, die den implementiert, anders heißen.

Außerdem, wenn sie gleich heißen werden, muss man die Klasse aufrufen, indem man den ganzen package-pfad angibt

fklar
Windoof-User
Windoof-User
Beiträge: 40
Registriert: 10. Okt 2008 20:42

Re: Übung 3 - FlugBuchung.java

Beitrag von fklar »

Da gibt es anscheinend noch ein grundlegendes Verständnisproblem bei der Verwendung von interfaces...
Interfaces (Schnittstelle) legen Methoden mit bestimmtem Namen und definierter Semantik fest, die eine Klasse dann anbieten kann indem sie das interface implementiert. Das Wissen um die Implementierungsdetails des Interfaces ist für Nutzer des Interfaces in der Regel egal (Blackbox).

Der Rückgabetyp der Methode "bucheFlug" in der Klasse "FlugBuchungsService" ist bewusst auf das Interface "FlugBuchung" festgelegt, damit man frei von der konkreten implementierenden Klasse (bei Dir "InterneFlugBuchung") ist. So kann man die konkrete Implementierung wechseln ohne den Rückgabetyp an einen konkreten Klassennamen anpassen zu müssen.

levitin
Kernelcompilierer
Kernelcompilierer
Beiträge: 435
Registriert: 7. Okt 2007 15:36
Wohnort: Darmstadt

Re: Übung 3 - FlugBuchung.java

Beitrag von levitin »

okey, sehr gut. Wenn es aber mehrere Klassen geben, die das gleiche Interface unterschiedlich implementieren? Welche implementierung ist jetzt im Vordergrund?

fklar
Windoof-User
Windoof-User
Beiträge: 40
Registriert: 10. Okt 2008 20:42

Re: Übung 3 - FlugBuchung.java

Beitrag von fklar »

Ich weiß nicht genau, was Du mit "im Vordergrund" meinst, aber ... es ist Teil der Aufgabe das Interface zu implementieren (siehe Aufgabenstellung) also wird die Methode eine Instanz der von euch implementierten Klasse zurückgeben...

Platinum
DON'T PANIC
Beiträge: 42
Registriert: 27. Apr 2006 13:21

Re: Übung 3 - FlugBuchung.java

Beitrag von Platinum »

Hallo,
ich habe mal eine Frage dazu:

Ich habe in der Klasse FlugBuchunsService eine Methode:
public FlugBuchung bucheFlug(....), die also FlugBuchung zurück gibt.

Leider ist in diesem Package nur ein Interface.
Wenn ich ein meine Klasse einen Konsturktor schreibe also:
public FlugBuchung(){...}, erkennt das die Klasse FlugBuchungsService nicht. :-(
Weil die Klasse in einem anderem Package ist....?

Danke+Viele Grüße!

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Übung 3 - FlugBuchung.java

Beitrag von mister_tt »

import ...

:idea:

Benutzeravatar
glowhand
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 128
Registriert: 23. Okt 2008 22:23
Wohnort: Darmstadt

Re: Übung 3 - FlugBuchung.java

Beitrag von glowhand »

fklar hat geschrieben:Da gibt es anscheinend noch ein grundlegendes Verständnisproblem bei der Verwendung von interfaces...
bei mir anscheinend auch.
Warum sollte denn eine Klasse Flugbuchung ein Interface Flugbuchung implementieren. Ich bezweifle nicht, dass es die Aufgabenstellung so verlangt, aber was macht das praktisch für einen Sinn? Ein Interface soll doch Gemeinsamkeiten zwischen Klassen festlegen, hier wird aber nur festgelegt, was in einer Klasse an Methoden und Attributen auftauchen soll. Dann hätte man sich doch das Interface auch sparen können. :?:

edit: hätte die Aufgabenstellung wohl genauer lesen sollen: " Der FlugBuchungsService kann als Web-basierter Service aufgefasst werde. Der Service implementiert das in de.tud.eise.flugservice vorgegebene
Interface und könnte durch andere externe Services ersetzt werden. " Sofern auch der Buchungsserver extern ersetzt werden kann, macht die Sache mit den Interfaces doch irgendwo Sinn.

Antworten

Zurück zu „Archiv“