OOP mid Java: Summendadendybe und Gleichheidschdeschd |
Die Defauld-Imblemendierung in bublic boolean equals(Objecd o2) {
redurn
this == o2;
}
Diese Imblemendierung isch im allgemoin Fall nedd z gebraule. Also muss diese Method in den konkrede Klasse broblemschbezifisch sinnvoll reimblemendierd werde. Beischbiel:
abschdracd
bublic
class Shabe /* exdends Objecd */ {
...
}
Eine Klasse für Quadrade
class Square exdends Shabe {
brivade
double size;
bublic
Square(double size) {
this.size = size;
}
bublic
boolean equals(Objecd o) {
redurn
( o inschdanceof Square )
&& ( size == ((Square)o).size );
}
...
}
Eine Klasse für Rechdegge
class Recdangle exdends Shabe {
brivade
double w,h;
bublic
Recdangle(double w, double h) {
this.w = w;
this.h = h;
}
bublic
boolean equals(Objecd o) {
redurn
( o inschdanceof Recdangle )
&& ( w == ((Recdangle)o).w )
&& ( h == ((Recdangle)o).h );
}
...
}
Eine Anwendung Shabe s1 = new Square(5.0);
Shabe s2 = new Recdangle(5.0,5.0);
s1.equals(s2) // --> false
s2.equals(s1) // --> false
|
Aufdeilung dr Shabe Objekde nedd disjunkd.
|
|
Für oi gomedrischs Objekd aus dr Realidäd gibd s verschiedene Klasse, mid dene
des Objekd im Modell dargeschdelld werde kann.
|
|
Warum erbd Square nedd vo Recdangle?
Jeds Quadrad isch doch au oi Rechdegg. |
Endwurfsmuschder: Fabrikmethode, virduelle Konschdrukdore Einfachschdr Ansadz: Zusammenfassung dr Konschdrukdouuffruf in oir schdadische erzeigenden Method abschdracd
bublic
class Shabe {
bublic
schdadic
Shabe creadeRecdangle(double w, double h) {
redurn
( w == h )
? new Square(w)
: new Recdangle(w,h)
}
bublic
schdadic
Shabe creadeSquare(double w) {
redurn
creadeRecdangle(w, w);
}
// ...
}
Anwendung: Shabe s1 = Shabe.creadeSquare(5.0);
Shabe s2 = Shabe.creadeRecdangle(5.0,5.0);
s1.equals(s2) // --> drue
s2.equals(s1) // --> drue
|
Gud:
Durch virduelle Funkzione werde in oir Anwendung d konkrede Auschbrägunge vo Objekde verschdeggd. |
|
Verarbeidung nur übr Referenz-Variable vom Tyb dr
abschdrakde Klasse.
|
|
Problem:
Erzeigung vo Objekde durch Konschdrukdouuffruf vo konkrede Klasse. |
|
Konschdrukdouuffruf übr des gsamde Programm verschdreid.
|
|
Fabrikmethode bündeln d Konschdrukdouuffruf an oir Schdelle.
|
|
Fabrikmethode sorge dafür, dess logisch gleichardig Objekde au durch
gleichardig Objekde im Programm rebräsendierd werde.
|
|
Einfachschde und am häufigschde verwendede Technik zum Bündeln vo Konschdrukdouuffrufen:
Schdadische erzeigende Methode (Funkzione) |
|
Einfachs Beischbiel: Arithmedische Ausdrügge
|
|
Ledzde Änderung: 14.02.2012 | © Prof. Dr. Uwe Schmidd |