• Keine Ergebnisse gefunden

TU Kaiserslautern

N/A
N/A
Protected

Academic year: 2022

Aktie "TU Kaiserslautern"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. A. Poetzsch-Heffter Dipl.-Inf. J.-M. Gaillourdet Dipl.-Inform. M. Reitz Dipl.-Inform. K. Geilmann Dipl.-Inf. P. Michel M. Sc. Y. Welsch

TU Kaiserslautern

Fachbereich Informatik AG Softwaretechnik

Übungsblatt 15: Software-Entwicklung 1 (WS 2008/09)

Ausgabe: in der Woche vom 09.02. bis zum 13.02.

Abgabe: keine Abnahme: keine

Am Montag den23.03.um15.00 Uhrwird es zur Vorbereitung auf die Klausur (am 30.03.) eine Fragestunde im gelben Hörsaal (46-210) geben.

Aufgabe 1 Attribute und Methoden

Betrachten Sie das folgende Codestück und beantworten Sie dazu die nachfolgenden Fragen:

1 class A {

2 int i = 1;

3 boolean typtest () { return ( this instanceof A ); }

4 void f () { g (); h (); }

5

6 public void g () { System . out . println ("g in A" ); }

7 private void h () { System . out . println ("h in A" ); }

8 }

9

10 class B extends A {

11 int i = 2;

12 boolean typtest () { return super. typtest (); }

13

14 public void g () { System . out . println ("g in B" ); }

15 protected void h () { System . out . println ("h in B" ); }

16 }

17

18 class C extends B {

19 int i = 3;

20

21 public void g () { System . out . println ("g in C" ); }

22 public void h () { System . out . println ("h in C" ); }

23 }

a) Wie viele objektlokale Variablen des Namensibesitzt ein Objekt der KlasseC?

b) Implementieren Sie eine Methode sum_i in C, die die Summe der in diesen objektlokalen Variablen gespeicherten Werte zurückliefert.

c) Kann auch in einer Methode, die in der KlasseBdeklariert wurde, auf jede dieser objektlokalen Variablen zugegriffen werden? Wenn ja, wie, und wenn nicht, warum nicht?

d) Liefert die Methodetyptest()der KlasseAstetstrue? Welchenspeziellstendynamischen Typ kann der implizite Parameter dieser Methode besitzen? Von welcher Klasse ist der implizite Parameter der Methode in Zeile 3 bei Ausführung von boolean b = new B().typtest();? Begründen Sie alle Antworten!

e) Was wird jeweils ausgegeben, wenn die Methodefauf je einem Objekt des TypsA,BundCaufgerufen wird? Begründen Sie das Resultat!

(2)

Aufgabe 2 Java Collection Klassen

Neben den eigentlichen Sprachfeatures zeichnet sich Java durch eine entsprechend ausgestattete Standard- bibliothek aus, welche durch eine Vielzahl von Klassen und Schnittstellen die Umsetzung von Implemen- tierungen vereinfacht, indem auf die zur Verfügung gestellten Bausteine mittels Vererbung, Subtyping usw.

zurückgegriffen werden kann.

Die im Paketjava.utilangesiedeltenCollection-Klassen stellen unter anderem Implementierungen für im Programmieralltag häufig auftretende Datenstrukturen bereit. Die Dokumentation zu diesem und den ande- ren Bestandteilen des aktuellen JDKs ist unterhttp://java.sun.com/javase/6/docs/apiverfügbar.

a) Betrachten Sie die Klasse LinkedList. Wo ist die Implementierung der MethodecontainsAll zu finden?

b) Gruppieren Sie die verschiedenen Implementierungen von Datenstrukturen nach typischen Grundcha- rakteristika wie beispielsweise mengenartigoder listenartig. Mit welchen Java-Sprachmitteln werden diese Grundcharakteristika für den Software-Entwickler abgebildet?

c) Betrachten Sie die Klasse HashSet. Mittels der generischen Methode toArray lässt sich ein Array erzeugen, welches die von derHashSet-Instanz verwalteten Elemente enthält. Wieso sollte die Methode nicht wie im folgenden Fragment

...

Set < String > set =new HashSet < String >();

set . add ("A" );

set . add ("B" );

set . add ("C" );

set . add ("E" );

set . add ("X" );

String [] array = set . toArray (new String [3]);

...

verwendet werden? Wie sieht ein sinnvoller Aufruf der MethodetoArrayaus?

d) Beschreiben Sie die eventuell vorhandenen Beziehungen zwischenCollection,HashSet,List,Vector undStackdurch Anfertigung eines Klassendiagramms.

e) Erläutern Sie, weshalb die Beziehung zwischen der Klasse Stackund der Klasse Vectorzumindest sehr unglücklich gewählt ist.

Aufgabe 3 Grafikeditor 2

In dieser Aufgabe werden wir den Grafikeditor von Übungsblatt 13 weiterentwickeln. Der Editor soll jetzt nicht mehr nur Polygone sondern verschiedene Figuren verwalten und darstellen können. Folgende Figuren sollen möglich sein: Rechteck, Quadrat, Kreis und Beschriftungen und natürlich weiterhin Polygone.

a) Entwerfen Sie eine Klassenhierarchie für verschiedene Arten von Figuren. Verwenden Sie eine abstrakte Klasse Figur als gemeinsame Superklasse. Verändern Sie ihr Klassendiagramm von Übungsblatt 13 Aufgabe 4, so dass es nun die neuen Klassen und ihre Beziehungen enthält.

b) Implementieren Sie die neuen und ändern Sie ihre bestehenden Klassen, um die neuen Figuren eingeben und darstellen zu können.

c) Erweitern Sie den Editor um die FunktionFigur duplizieren, die die aktuell im Fokus stehende Figur dupliziert. Beide Figuren (das Original und das Duplikat) sollen anschließend unabhängig voneinander verschoben werden können.

Referenzen

ÄHNLICHE DOKUMENTE

Entscheiden Sie, ob die folgenden Formeln Axiome des deduktiven Systems F sind. Falls ja, geben Sie an zu welchem der 6 Schemata die Formel

Geben Sie jeweils einen konstruktiven Beweis für die beiden folgenden Aussagen an. “Konstruktiv” heißt hier, dass aus dem Beweis hervorgehen soll, wie man die gewünschte

Fachbereich Informatik AG Softwaretechnik. Übungsblatt 13: Logik

Wenn der Rest der Liste die leere Liste ist, kann diese auch weggelassen werden.. Wir wollen in dieser Aufgabe zum Üben unsere eigenen

Fachbereich Informatik AG Softwaretechnik. Übungsblatt 3: Logik

Zeigen Sie, dass sich Beweise in F 0 verallgemeinern lassen: Wenn es einen Beweis mit einer Variablen p gibt, dann lässt sich p durch eine beliebige Formel ersetzen und man erhält

b) Schreiben Sie eine Funktion addLineNumbers: string -&gt; string -&gt; unit, die jeder Zeile aus Datei 1 (1. Parameter) eine Zeilennummer voranstellt und das Ergebnis in eine

Wenn v eine lokale Variable einer Prozedur ist, dann wird mit v immer die gleiche Spei- chervariable angesprochen... Auf jede Variable kann während der gesamten