generische Methode gesamtWert()

Werbung
UE zu SW 2
Selbsttest Std 05
double gesamtWert (Wertsache[] erbschaft) {
double gesamt = 0.0;
for (int i = 0; i < erbschaft.length; i ++) {
gesamt += erbschaft[i].berechneWert();
}
return gesamt;
}
generische Methode gesamtWert()
1
UE zu SW 2
Selbsttest Std 05
Klasse GoldBarren:
public double berechneWert () {
return goldKurs.preisProEinheit() * gewicht;
}
public double berechneWert () {
int jahrDiff = Datum.aktuellesJahr()–entstehungsJahr;
double wert = 0.0;
if (jahrDiff >= mindestAlter)
wert += (jahrDiff-mindestAlter)*wertanstiegProJahr;
return super.berechneWert() + wert;
}
Klasse Antiquitaet:
public double berechneWert () {
return einkaufspreis;
}
Klasse Sache:
Erweiterung und Anpassung
2
UE zu SW 2
Wertsache
1
Selbsttest Std 05
int entstehungsjahr;
...
double berechne();
Antiquitätsbewertung
double preis
Sache
...
1
Raritätsbewertung
...
WertAenderung
double berechne();
Austauschbares Verhalten
Klassendiagramm
3
UE zu SW 2
Selbsttest Std 05
class WertAenderung {
public double berechne() {
return 0.0; // default: keine Aenderung
}
}
}
public double berechneWert() {
return einkaufspreis + diffWert.berechne();
diffWert.berechne()
}
...
class Sache implements Wertsache {
double einkaufspreis;
WertAenderung diffWert;
Austauschbares Verhalten
4
UE zu SW 2
}
Selbsttest Std 05
public double berechne () {
int jahrDiff = Datum.aktuellesJahr()–entstehungsJahr;
if (jahrDiff >= mindestAlter)
return (jahrDiff-mindestAlter)*wertanstiegProJahr;
return 0.0;
}
class AntiquitaetsBewertung extends WertAenderung {
int entstehungsJahr;
double wertAnstiegProJahr;
int mindestAlter;
Austauschbares Verhalten
5
Herunterladen