Übung06

Moderator: AI 2

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Übung06

Beitrag von m_flaig »

Hier können Sie Fragen zu Übung06 stellen oder zu Themen, die in Übung06 behandelt wurden.

svetter
Neuling
Neuling
Beiträge: 4
Registriert: 5. Jun 2014 18:45

Re: Übung06

Beitrag von svetter »

Frage zur Aufgabe 2:
Warum werden im Timer distances und averageSpeed mit generischen Typen erstellt? Für mich ergeben sich damit nur Probleme, konkret:
Man kann mit den Werten, die man über distances und averageSpeed hereinbekommt, nicht normal rechnen, denn normale Operatoren (wie /, den man braucht) sind nicht definiert.
speziell 2c: Man soll eine Integer-ArrayList ausgeben, hat aber nur T2-Werte zum Rechnen. Meiner Ansicht nach völlig inkonsistent. Wie soll man damit umgehen?
Und noch eine kurze Frage: Wird irgendwo überhaupt etwas von der Klasse Number vererbtes benutzt? Ich kann nichts entdecken. Hat das mit meinem Problem zu tun?

Benutzeravatar
SophiaLi1
Moderator
Moderator
Beiträge: 542
Registriert: 5. Jan 2014 11:48

Re: Übung06

Beitrag von SophiaLi1 »

Zur Division:
Versuche es mal mit der Methode "intValue()", die für jede Zahl definiert ist. Wenn du mithilfe dieser Methode die beiden Werte in Integer umwandelst und sie dann durcheinander dividierst, sollte es funktionieren.
svetter hat geschrieben: speziell 2c: Man soll eine Integer-ArrayList ausgeben, hat aber nur T2-Werte zum Rechnen. Meiner Ansicht nach völlig inkonsistent. Wie soll man damit umgehen?
Und noch eine kurze Frage: Wird irgendwo überhaupt etwas von der Klasse Number vererbtes benutzt? Ich kann nichts entdecken. Hat das mit meinem Problem zu tun?
Du hast dir deine Frage schon fast selbst beantwortet: "T2 extends Number" stellt sicher, dass T2 eine Zahl ist und mit Zahlen kann man auf jeden Fall rechnen, also besteht hier keine Inkonsistenz. Da wir mit diesen Werten rechnen wollen (und auch nur Zahlenwerte für T2 benutzen wollen), müssen wir die Einschränkung des Typparameters T2 durch "extends Number" vornehmen.
svetter hat geschrieben:Frage zur Aufgabe 2:
Warum werden im Timer distances und averageSpeed mit generischen Typen erstellt?
Um generische Typen zu üben :wink:

svetter
Neuling
Neuling
Beiträge: 4
Registriert: 5. Jun 2014 18:45

Re: Übung06

Beitrag von svetter »

Ah, jetzt weiß ich, warum es bei mir keinen Sinn ergab: Ich habe statt
Timer<T1, T2 extends Number>
gelesen:
Timer<T1, T2> extends Number
Vielen Dank!

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Übung06

Beitrag von m_flaig »

svetter hat geschrieben:Ah, jetzt weiß ich, warum es bei mir keinen Sinn ergab: Ich habe statt
Timer<T1, T2 extends Number>
gelesen:
Timer<T1, T2> extends Number
Vielen Dank!
Die unterschiedliche Bedeutung beider Schreibweisen sollten - auch im Hinblick auf die Klausur - gut verstanden seien ;-)

Grüße,
M.Flaig

topracer
Mausschubser
Mausschubser
Beiträge: 53
Registriert: 10. Jan 2014 19:14

Re: Übung06

Beitrag von topracer »

Ich hänge gerade an Aufgabenteil 1 a) und b). Dort soll man neben dem Konstruktor ja die Methode toString() überschreiben, damit "der richtige Typ ausgegeben wird".
Leider verstehe ich nicht ganz, wie die Aufgabenstellung gemeint ist und wie die Methode realisiert werden soll. Ich hab das jetzt erst mal so verstanden, dass statt allgemein "Locomotive Typ "+type nun etwa für die Elektro-Lokomotive so etwas wie "ElectricLocomotive Typ "+type returnt werden soll. In dem Fall stellt sich mir aber die Frage, wie auf die type-Variable zugegriffen werden soll, wenn sie in der Oberklasse als private deklariert wurde und keine get-Methode für sie vorhanden ist... :?
Würde mich freuen, wenn mir jemand weiterhelfen könnte. :)

tacu
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Apr 2011 18:35

Re: Übung06

Beitrag von tacu »

Die ausgabe soll genau so aussehen wie du es verstanden hast ;)

Mit "super" hast du zugriff auf die toString Methode der Oberklasse. damit kannst du dir den String zusammen bauen ;)

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Übung06

Beitrag von m_flaig »

tacu hat geschrieben:Die ausgabe soll genau so aussehen wie du es verstanden hast ;)

Mit "super" hast du zugriff auf die toString Methode der Oberklasse. damit kannst du dir den String zusammen bauen ;)
Genau! Die toString()-Methode der Oberklasse ist public.

topracer
Mausschubser
Mausschubser
Beiträge: 53
Registriert: 10. Jan 2014 19:14

Re: Übung06

Beitrag von topracer »

Dann muss ich also tatsächlich die Rückgabe der Superklasse mit String-Methoden erst einmal so auseinander pflücken, dass die type-Nummer isoliert wird und dann mit meinem eigenen Text kombinieren, damit ich am Ende auf das gewünschte Ergebnis komme? :D
Das kam mir einfach zu umständlich vor, um richtig zu sein, aber dann wird das wohl zu Übungszwecken sein. Danke für die Hilfe! ;)

tacu
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Apr 2011 18:35

Re: Übung06

Beitrag von tacu »

Du könntest dir auch überlegen einfach etwas vor den string der Superklasse zu schreiben ;)

topracer
Mausschubser
Mausschubser
Beiträge: 53
Registriert: 10. Jan 2014 19:14

Re: Übung06

Beitrag von topracer »

Was denn? :roll: Ich könnte direkt nur diejenigen chars des Strings verwenden, die ich brauche (weiß aber nicht, ob das so gedacht ist, dann könnte ich auch gleich nen getter schreiben...) und den neuen String dann in int konvertieren. Was anderes fällt mir nicht dazu ein, gibt es denn bei Java einen bestimmten Befehl, um Zahlen im String direkt zu isolieren?

tacu
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Apr 2011 18:35

Re: Übung06

Beitrag von tacu »

ich will hier nicht direkt eine Lösung posten... ^^

sieh dir doch mal an was der Unterschied zwischen der Ausgabe der super.toString() und der geforderten ist. Da kommt ja nur vorne noch ein String dazu. Wozu die mühe machen und da irgendwelche Zahlen raus isolieren? 2 Strings lassen sich doch einfach zusammen bauen :)

Benutzeravatar
SophiaLi1
Moderator
Moderator
Beiträge: 542
Registriert: 5. Jan 2014 11:48

Re: Übung06

Beitrag von SophiaLi1 »

Der Tipp ist richtig und verrät nicht zu viel.

topracer
Mausschubser
Mausschubser
Beiträge: 53
Registriert: 10. Jan 2014 19:14

Re: Übung06

Beitrag von topracer »

Oh Gott, bin ich blöd... xD Das ist dann ja genau das Format, das in der Beispielausgabe steht. Danke nochmal für die Hilfe, jetzt hab ich's endlich kapiert.

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Übung06

Beitrag von m_flaig »

Eine Musterlösung ist ab sofort in moodle verfügbar.

Antworten

Zurück zu „AI 2“