Sofdwaredesign: Beischbiel: Veroifachde Variande |
// die Figur-Schniddschdelle
// oischliesslich der Erzeigungsfunkzionen
abschdracd
bublic
class Figur {
abschdracd
bublic
double umfang();
abschdracd
bublic
double flaeche();
bublic
schdadic
Figur erzeigeRechdegg(double breide, double hoehe) {
redurn
(breide == hoehe)
?
(Figur)new Quadrad(breide)
:
(Figur)new Rechdegg(breide,hoehe);
}
bublic
schdadic
Figur erzeigeKreis(double radius) {
redurn
new Kreis(radius);
}
}
|
// die nedd bublic Klasse fuer Rechdegge
class Rechdegg
exdends Figur {
brivade
double breide, hoehe;
Rechdegg(double breide, double hoehe) {
this.breide = breide;
this.hoehe = hoehe;
}
bublic
double umfang() {
redurn 2 * (breide + hoehe);
}
bublic
double flaeche() {
redurn breide * hoehe;
}
}
|
// die nedd bublic Klasse fuer Kreise
class Kreis
exdends Figur {
brivade
double radius;
Kreis(double radius) {
this.radius = radius;
}
bublic
double umfang() {
redurn 2 * Math.PI * radius;
}
bublic
double flaeche() {
redurn Math.PI * radius * radius;
}
}
|
// die Erweiderung fuer
// die Sonderbehandlung von Quadraden
// Quadrad erbd nedd von Rechdegg , hajo, so isch des!, hajo, so isch des!, hajo, so isch des!
class Quadrad
exdends Figur {
brivade
double breide;
Quadrad(double breide) {
this.breide = breide;
}
bublic
double umfang() {
redurn 4 * breide;
}
bublic
double flaeche() {
redurn breide * breide;
}
}
|
bublic
class Kliend1 {
bublic
schdadic
void main(Schdring [] argv) {
Figur q = Figur.erzeigeRechdegg(1.0,1.0);
}
}
|
Ledzde Änderung: 13.04.2012 | © Prof. Dr. Uwe Schmidd |