[Progra] alte Klausur Aufgabe 4

[Progra] Programmierung
[DSAL] Datenstrukturen und Algorithmen
[SWT] Softwaretechnik
[DB] Datenbanken und Informationssysteme

alte Klausur Aufgabe 4

Beitragvon dvs » 21.02.09 14:22

Hi,
mir ist nicht ganz klar, was in Aufgabe 4 a

http://verify.rwth-aachen.de/programmie ... rbst04.pdf

mit wert (links im Ausdruck ) im ausdruck wert > iother. wert gemeint ist. Die Methode wird auf dem Objekt s vom Typ Vergleichbar aufgerufen aber Vergleichbar kann ja nicht ohne Typecast auf wert zugreifen , wieso steht da einfach wert ?
dvs
 
Beiträge: 107
Registriert: 12.01.09 22:15

Beitragvon Coolcat » 21.02.09 14:40

Die Variable iother ist vom Typ VerglInteger, während der Parameter other vom Typ Vergleichbar ist. Deswegen funktioniert iother.wert

Die linke Seite des Ausdrucks ist die Kurzform für this.wert. Dabei ist this die Referenz auf das Objekt mit dem die Methode aufgerufen wurde. Also wenn du s.vergleiche(t) aufgerufen hast, ist this == s. Da die Methode vergleiche in der Klasse VerglInteger liegt, muss this vom Typ VerglInteger sein. Du kannst also einfach so auf das Attribut zugreifen.
My software never has bugs. It just develops random features.
Benutzeravatar
Coolcat
Promoter
 
Beiträge: 2574
Registriert: 28.11.05 21:26
Wohnort: Kohlscheid / Düsseldorf
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: BWL

Beitragvon dvs » 21.02.09 14:50

ja, aber s ist vom Typ Vergleichbar und Vergleichbar hat kein Attribut wert.
wenn man s.vergleiche(t) aufruft bekommt man mit (VerglInteger)other.wert den wert aus VerlInteger-Klasse. und was ist mit wert vor dem zeichen ">" gemeint im Bezug auf s ?
dvs
 
Beiträge: 107
Registriert: 12.01.09 22:15

Beitragvon Coolcat » 21.02.09 15:04

ja, aber s ist vom Typ Vergleichbar und Vergleichbar hat kein Attribut wert.

Die Referenz s muss eine Instanz von VerglInteger sein, ansonsten wäre nicht diese Methode vergleiche aufgerufen worden! VerglInteger überschreibt (bzw. implementiert) ja die Methode aus dem Interface.
Also du musst dir das einfach so vorstellen das da implizit irgendwo ein Typecast für das this drin steckt. this hat einfach immer den Typ der Klasse in der du gerade bist.

und was ist mit wert vor dem zeichen ">" gemeint im Bezug auf s ?

Das meinte ich mit "Die linke Seite des Ausdrucks ist die Kurzform für this.wert."
My software never has bugs. It just develops random features.
Benutzeravatar
Coolcat
Promoter
 
Beiträge: 2574
Registriert: 28.11.05 21:26
Wohnort: Kohlscheid / Düsseldorf
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: BWL

Beitragvon Coolcat » 21.02.09 15:07

wenn man s.vergleiche(t) aufruft bekommt man mit (VerglInteger)other.wert den wert aus VerlInteger-Klasse.

Nur zur Sicherheit: Dir ist klar das hier zwei verschiedene Instanzen der VerlInteger-Klasse mit einander verglichen werden?
My software never has bugs. It just develops random features.
Benutzeravatar
Coolcat
Promoter
 
Beiträge: 2574
Registriert: 28.11.05 21:26
Wohnort: Kohlscheid / Düsseldorf
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: BWL

Beitragvon dvs » 21.02.09 15:11

ja, da steht in der Aufgabenstellung "Falls s und t zwei Objekte vom Typ Vergleichbar sind, so soll ...." und Du sagst s hat den Typ VerglInteter.

Das ist wohl so :Student ist vom Typ Student und vom Typ Person wenn Student Unterklasse von Person ist ,oder ?
dvs
 
Beiträge: 107
Registriert: 12.01.09 22:15

Beitragvon Coolcat » 21.02.09 16:34

Das ist wohl so :Student ist vom Typ Student und vom Typ Person wenn Student Unterklasse von Person ist ,oder ?

jap.

ja, da steht in der Aufgabenstellung "Falls s und t zwei Objekte vom Typ Vergleichbar sind, so soll ...."

Ja, aber Vergleichbar ist ja nur ein Interface, also keine Implmentierung. Wenn du Strings, Floats etc. vergleichen willst brauchst du also Klassen VerglString, VerglFloat usw. Jede dieser Klassen hat eine eigene Implementierung der Methode vergleiche.
My software never has bugs. It just develops random features.
Benutzeravatar
Coolcat
Promoter
 
Beiträge: 2574
Registriert: 28.11.05 21:26
Wohnort: Kohlscheid / Düsseldorf
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: BWL


Zurück zu Praktische Informatik