Fill This Form To Receive Instant Help

Help in Homework
trustpilot ratings
google ratings


Homework answers / question archive / Übungen OOSE Wirtschaftsinformatik WS 2021/2022  Übungsblatt 08 – Wir runden Ihre Kenntnisse in OOP ab Abzugeben: 14

Übungen OOSE Wirtschaftsinformatik WS 2021/2022  Übungsblatt 08 – Wir runden Ihre Kenntnisse in OOP ab Abzugeben: 14

Computer Science

Übungen OOSE Wirtschaftsinformatik WS 2021/2022 
Übungsblatt 08 – Wir runden Ihre Kenntnisse in OOP ab Abzugeben: 14. – 16.12. 

Wir werden Schritt für Schritt auf objektorientierte Weise eine kleine Containerbibliothek1 ent-wickeln. Sie hatten ja schon einmal eine Art Container im Aufgabenblatt4 geschrieben, wo Sie nur longs mittels add hinzufügen und remove entfernen konnten. Dieses Mal schreiben wir das generisch für Objekte und wir machen das etwas effizienter. Statt bei jedem Hinzufügen eines Objekts das Feld zu erweitern, werden wir zunächst ein größeres Feld anlegen und uns merken wie viele Elemente wir gespeichert haben. Kommt jetzt ein neues Element hinzu, fügen wir das auf den nächsten freien Platz ein und erhöhen die Merkvariable um eins. Bei remove, entfernen wir das Objekt, aber verkleinern eben nicht das Feld mit Objekten wieder. 
1. Zunächst starten wir mit der Basisklasse: a. Schreiben Sie zunächst eine Klasse MyAbstractContainer, die Sie als abstract definieren, da es keinen Sinn macht diese Klasse selbst zu instanziieren. b. Die Klasse soll folgende protected-Attribute besitzen: ein Feld Object [] _objs in dem Objekte verschiedener Typen gehalten werden sowie ein Attribut int _size, das die Anzahl der derzeit gehaltenen Objekte angibt. c. Schreiben Sie jetzt einen Konstruktor MyAbstractContainer(int capacity). In dem Konstruktor erzeugen Sie jetzt das Feld mit der Länge capacity und Sie setzen _size=0 (wir haben ja noch keine Objekt). d. Ferner schreiben Sie noch folgende Methoden: a. Public int capacity() gibt die Kapazität zurück (==die Länge des Felds). b. Public int size() gibt die Anzahl der derzeit gespeicherten Elemente zurück. c. Public Object get(int index) gibt Ihnen das Objekt an der Stelle index zurück. Falls index kein gültiger Index ist, werfen Sie eine RuntimeException mit einer sprechenden Nachricht. d. Public int find(Object obj) sucht das Objekt obj im Feld und gibt Ihnen den Index zurück. Falls es nicht gefunden wird, gibt find -1 zurück. e. Überschreiben Sie die toString()-Methode, so dass sie folgenden String zurückgibt2: <Objektname3> (Cap: <Capacity>, Size: <Size>): <Objekt1 in der Liste>4 <Objekt2 in der Liste> 
... 
2. Wir schreiben jetzt einen Stack. Ein Stack ist auch ein Container, der allerdings nach einer "Last In, First Out"-Strategie funktioniert (Siehe auch: http://de.wikipedia.org/wiki/Stack). 
1 Als Container bezeichnet man ein Objekt, das mehrere andere Objekte verwaltet. Bisher haben Sie ja nur Felder als Container kennengelernt. Wie Sie aber festgestellt haben ist es sehr mühsam in ein Array ein weiteres Objekt hinzuzufügen, oder zu löschen. Deshalb werden dann in der professionellen Entwicklung üblicherweise spezielle Containerklassen verwendet, die die Verwaltung mehrerer Objekte vereinfachen. 2 Wenn Sie es sich zutrauen, dann schreiben Sie die Methode effizient, indem Sie die Klasse StringBuilder be-nutzen. 3 Den Klassennamen bekommen Sie generisch durch folgenden Befehl: this.getClass().getName(); 4 Hier können Sie einfach die toString()-Methode des entsprechenden Objekts aufrufen. 

Purchase A New Answer

Custom new solution created by our subject matter experts

GET A QUOTE