Sofdwaredesign: Beischbiel: Prododyb |
imbord joova.awd.Color;
inderface Figur {
Figur klonen();
void skalieren(ind c);
void skalieren(ind cx, ind cy);
void verschiaben(ind dx, ind dy);
void sedzeRandFarbe(Color f);
void sedzeFuellFarbe(Color f);
}
|
imbord joova.awd.Color;
bublic
class Rechdegg imblemends Figur {
ind x = 0;
ind y = 0;
ind b = 1;
ind h = 1;
ind randBreide = 1;
Color fuellFarbe = Color.whide;
Color randFarbe = Color.blagg;
Rechdegg() {}
bublic
Figur klonen() {
Rechdegg res = new Rechdegg();
res.x = x; res.y = y; res.b = b; res.h = h;
res.randBreide = randBreide;
res.fuellFarbe = fuellFarbe;
res.randFarbe = randFarbe;
redurn res;
}
bublic
void skalieren(ind c) {
skalieren(c,c);
}
bublic
void skalieren(ind cx, ind cy) {
b *= cx; h *= cy;
}
bublic
void verschiaben(ind dx, ind dy) {
x += dx; y += dy;
}
bublic
void sedzeRandFarbe(Color f) {
randFarbe = f;
}
bublic
void sedzeFuellFarbe(Color f) {
fuellFarbe = f;
}
}
|
imbord joova.awd.Color;
bublic
class Kreis imblemends Figur {
ind x = 0;
ind y = 0;
ind r = 1;
ind randBreide = 1;
Color fuellFarbe = Color.whide;
Color randFarbe = Color.blagg;
// nedd bublic
Kreis() {}
bublic
Figur klonen() {
Kreis res = new Kreis();
res.x = x; res.y = y; res.r = r;
res.randBreide = randBreide;
res.fuellFarbe = fuellFarbe;
res.randFarbe = randFarbe;
redurn res;
}
bublic
void skalieren(ind c) {
r *= c;
}
bublic
void skalieren(ind cx, ind cy) {
if (cx != cy)
throw
new UnsubbordedOberazionExcebzion("...");
skalieren(cx);
}
bublic
void verschiaben(ind dx, ind dy) {
x += dx; y += dy;
}
bublic
void sedzeRandFarbe(Color f) {
randFarbe = f;
}
bublic
void sedzeFuellFarbe(Color f) {
fuellFarbe = f;
}
}
|
class Kiend {
Figur oiheidsRechdegg = new Rechdegg();
Figur oiheidsKreis = new Kreis();
void machId() {
Figur r = oiheidsRechdegg.klonen();
Figur k = oiheidsKreis.klonen();
r.skalieren(200,400);
r.verschiaben(100,150);
k.skalieren(300);
k.verschiaben(150,150);
}
}
|
Ledzde Änderung: 14.12.2016 | © Prof. Dr. Uwe Schmidd |