Prof. Dr. F.M. Thiesing Prof. M. Siekmann Osnabrück, 26.09.05 Kurs MI4, TI4 Software Engineering Blatt 1 1.) Implementierung von Methoden in der Klasse Pkw Es sollen in der Klasse Pkw die folgenden Methoden implementiert bzw. ergänzt werden: Konstruktor 1 Konstruktor 2 Konstruktor 3 String- Ausgabe String- Ausgabe public Pkw() public Pkw(String t, String h, String f, int k, int p) public Pkw(String t, String h) public String toString() für das aktuelle Objekt public static String alltoString() für das Array pkwArr. Mit diesen Methoden soll dann das Hauptprogramm public static void main(String [] args) compiliert und ausgeführt werden. 2.) Realisierung von Zugriffsmethoden auf Attribute der Klasse Pkw.java Es sollen die folgenden get-Methoden für Attribute von Objekten implementiert werden: int getIdentnummer(), String getTyp(), String getHersteller(), String getFarbe(), int getKmleistung(), int getPreis() Es sollen die folgenden set-Methoden für Attribute von Objekten implementiert werden: void setFarbe(String f), void setKmleistung(int k), void setPreis(int p) Es sollen die folgenden get-Methoden für Klassenattribute implementiert werden: static int getAktIdentnummer(), static int getCount(), static Pkw [] getPkwArr() 3.) Entfernen von Objekten aus dem Feld pkwArr Es sollen die Methode static boolean delete(Pkw a) zur Entfernung (Löschung) eines Pkw aus dem Feld pkwArr implementiert werden. Dabei sollen die nachfolgenden Objekte innerhalb des Feldes aufgerückt werden und der Zähler count entsprechend korrigiert werden. Der Rückgabewert ist true, wenn das Pkw-Objekt gelöscht wurde und false, wenn es nicht im Array gefunden wurde. 4.) Realisierung von Methoden zur Abfrage auf Gleichheit und zum Vergleich der Größe Es soll die Gleichheit von Objekten definiert werden durch Überschreibung der leeren Methode boolean equals( Object obj ) der Basisklasse Object Es soll der Größenvergleich von Objekten definiert werden durch Implementierung der abstrakten Methode int compareTo (Objekt obj) des Interface Comparable, wobei der Vergleich auf das Attribut preis durchgeführt werden soll. 5.) Realisierung einer Methode zum Setzen von Standardwerten Implementieren Sie eine Methode zur Einstellung der Standardwerte stdTyp, stdHersteller und stdFarbe mit der Signatur static void setStandard(String t, String h String f) . Bei Belegung eines Strings in der Parameterliste mit einem Leerstring, soll der alte Standardwert an dieser Position erhalten bleiben. 6.) Realisierung der clone-Methode zum Kopieren von Objekten In der Basisklasse Object ist die Methode protected Object clone() definiert. Diese soll in der Klasse Pkw so definiert werden, dass ein neues Objekt erzeugt wird, das mit dem aktuellen Objekt inhaltlich identisch ist. Da bei den Konstruktoren 1, 2 und 3 immer die identnummer automatisch erhöht wird und das erzeugte Objekt in pkwArr aufgenommen wird, soll ein weiterer Konstruktor 4 durch Pkw( int id, String t, String h, String f, int k, int p ) definiert werden, der die identnummer mit id belegt und zu keiner neuen Aufnahme in pkwArr führt. Dieser Konstruktor soll nur für den internen Gebrauch zur Verfügung stehen mit der Spezifikation "friendly" ohne Angabe von public, protected oder public (sog. paketsichtbar). 7.) Trennung der Übersetzungseinheiten und Batchdateien zur Kommandoausführung Erzeugen Sie eine Klasse namens TestProg in einer Datei TestProg.java, die ausschließlich die Methode des Main-Programms enthält: public static void main(String [] args). Kopieren Sie diese Methode aus der Klasse Pkw in diese neue Klasse. Erzeugen Sie Batchdateien zum schnelleren Ausführung von Compilierung und Ausführung des Programms, und zwar j.bat mit dem Compiler- Aufruf r.bat mit dem Startbefehl d.bat mit dem Löschbefehl javac TestProg.java java TestProg del *.class 8.) Aufruf einer Benutzeroberfäche MainGUI Übersetzen Sie die Quelldatei MainGUI.java und fügen Sie in das Main-Programm der Klasse TestProg den Aufruf der MainGUI vor dem Statement System.exit(0) ein, nämlich MainGUI aGUI.run(); aGUI = new MainGUI() ; Nach Compilierung und Ausführung des Main-Programms erscheint die Oberfläche mit der Anzeige von count und pkwArr. Es ist jedoch nur der EXIT-Button aktiv geschaltet!