hi
ich hab bei der ersten aufgabe von blatt z ein kleines problem. wir sollen ja eine klasse vorstellungsplan schreiben, die beim konstruktor ein array mit kinosälen übergeben bekommt. mir ist jetzt nun nicht ganz klar, wo dieses array mit den kinosälen erzeugt werden soll…
Die brauchst du dort ja nich erzeugen, sondern die wird übergeben, also würde ich mal darauf tippen, dass du das in der Startup-Klasse erzeugst, die in Aufgabe 2 zu schreiben ist.
meinst du in der main-methode der startup-klasse?
hm, das würde gehen, ist aber nicht besonders flexibel, aber sind die anderen startups ja auch nicht.
dann danke erstmal…
Soweit, dass man das Programm wirklich sinnvoll nutzen kann, werden wir wohl dieses Semester wohl nicht mehr kommen. [img]
http://www.fb18.de/gfx/22.gif[/img]
meinst du in der main-methode der startup-klasse?
hm, das würde gehen, ist aber nicht besonders flexibel, aber sind die anderen startups ja auch nicht.
dann danke erstmal…
Naja, aber du musst bedenken, dass du ja nur einmal den Vorstellungsplan erzeugst mit der Startup-Klasse, denn es kommt ja nicht ganz so oft vor, dass du einen neuen Kinosaal bauen lässt, oder?
[img]
http://www.fb18.de/gfx/24.gif[/img]
Wozu gibts denn args[]…
Wenn du Lust hast kannst du damit deine Kinosaele uebergeben…
Wozu gibts denn args[]…
Wenn du Lust hast kannst du damit deine Kinosaele uebergeben…
Und die kommen direkt aus dem Nichts? Irgendwo müssen sie ja erzeugt werden… nich? und da wären wir wieder beim Anfangsproblem…
[img]
http://www.fb18.de/gfx/10.gif[/img]
Wozu gibts denn args[]…
Wenn du Lust hast kannst du damit deine Kinosaele uebergeben…
Und die kommen direkt aus dem Nichts?
Nein, von der Kommandozeile. Deshalb args[]. :)
Natuerlich sind da dann keine Objekte, aber man kann ja einen Kinosaal pro Parameter uebergeben:
$java -ea de.inf…StartUp Saal1:Reihen:Sitze Saal2:Reihen:Sitze
und dann auseinander pfriemeln…
Wozu gibts denn args[]…
Wenn du Lust hast kannst du damit deine Kinosaele uebergeben…
Und die kommen direkt aus dem Nichts?
Nein, von der Kommandozeile. Deshalb args[]. :)
Natuerlich sind da dann keine Objekte, aber man kann ja einen Kinosaal pro Parameter uebergeben:
$java -ea de.inf…StartUp Saal1:Reihen:Sitze Saal2:Reihen:Sitze
und dann auseinander pfriemeln…
Wenn das so einfach geht… [img]
http://www.fb18.de/gfx/14.gif[/img] wusste ich nicht…
Hast dich nie gewundert wo dieses ominöse args herkommt? War das erste was ich nachgeguckt hab… ;)
Nur: Da kann der potentiell dumme Nutzer ran. Also vorsichtig…
Moin,
ich hab auch ne Frage zu Z1:
In Vorstellungplan soll eine Methode
"public Vorstellung gibVorstellung(Kinosaal saal, Uhrzeit az)"
implementiert werden. Ich lass da ueber eine Liste "vorstellungen" iterieren und wenn die gewuenschte vorstellung gefunden wird, wird sie zurueckgegeben. Der Compiler meckert aber rum. denn was passiert, wenn es diese Vorstellung gar nicht gibt?
(null pointer?) als vorbedingung pruef ich auch schon ob diese vorstellung ueberhaupt existiert. Bin ich aufm Holzweg? Was kann man da machen?
Hast du die return-Anweisung innerhalb der if-Bedingung?
Wenn ja, raus damit. Das zwingt dich auch zur korrekten Initialisierung und dürfte dein Problem lösen.
Das Problem ist, dass ich die rueckgabe variable, wenn die die gesuchte vorstellung nicht exixtiert, gar nicht initialisiere! Wenn es die vorstellung nicht gibt, kann sie ja auch gar nicht zurueckgegeben werden. Also, was soll ich in einem solchen Fall zurueckgeben?
Es muss natürlich eine Vorbedingung sein, dass diese Vorstellung existiert. Allerdings versteht Java Vorbedingungen nicht in dem Sinne, wie wir sie anwenden, so dass trotzdem eine Warnung vom Compiler kommt. Die wird man los, indem man einfach mit "=null" initialisiert.
Ok, dankeschön, bin noch nicht so fit mit dem Vertragsmodell. Hatte die Vorbedingung allerdings schon eingebaut, wusste nur nicht ob das schon reicht, oder ob man die methode noch irgendwie ganz anders bauen kann.