mercredi 29 avril 2015

Klassen Referenzen auf Felder

Hallo Zusammen

Mir fehlt leider der Ansatz für eine Teilaufgabe (b). Vielleicht mache ich es mir auch viel zu schwer, wäre aber über Hilfe sehr dankbar.

Die Teilaufgabe (a) habe ich soweit gelöst.
(a) Implementieren Sie eine generische Klasse Paar<T> zur Repräsentation von Paaren mit beliebigem
Komponententyp T.
Die beiden Objekte, die ein Paar bilden, sollen dem Paar-Konstruktor als Parameter übergeben
werden. Darüberhinaus soll die generische Klasse folgende Methoden anbieten:
– first() und second()
geben die beiden Objekte des Paares zurück,
– swap()
vertauscht die beiden Objekte innerhalb des Paares, und
– toString()
erzeugt für das Paar eine Darstellung als String in der Form "(first,second)", worin
die beiden Platzhalter für die Stringdarstellungen der beiden Objekte stehen.

Dazu mein Code
Java Code:

  1.  
  2. public class Paar<T> {
  3.  
  4. private T eins;
  5. private T zwei;
  6.  
  7. public Paar(T eins, T zwei) {
  8. this.eins = eins;
  9. this.zwei = zwei;
  10. }
  11.  
  12. public T first() {
  13. return this.eins;
  14. }
  15.  
  16. public T second() {
  17. return this.zwei;
  18. }
  19.  
  20. public void swap() {
  21. T tmp;
  22. tmp = this.eins;
  23. this.eins = this.zwei;
  24. this.zwei = tmp;
  25. }
  26.  
  27. public String toString() {
  28. return "(" + eins.toString() + "," + zwei.toString() + ")";
  29. // Hier hätte man toString() auch weglassen können, da sich diese schon in der toString Methode befinden
  30. }
  31.  
  32. }



Nun komme ich bei der Teilaufgabe (b) nicht ins rollen.

(b) In den Codebeispielen zur Vorlesung finden Sie eine Implementierung der Klasse Feld<T>.
Implementieren Sie eine generische Klasse PaarFeld<T>. Eine Instanz dieser Klasse referenziert
zwei gegebene Feld<T>-Instanzen mit beliebigem, aber gleichem Elementtyp T.
Die Klasse soll einen Konstruktor bieten, der Referenzen auf die zwei Felder annimmt. Das
Paarfeld soll die beiden zugrundeliegenden Felder nur referenzieren, nicht als eigene übernehmen.
Die Methodensignaturen der Klasse sollen so aussehen und sich so verhalten, als wäre sie
Feld<Paar<T>>. Bei Lesezugriff sind also Paare zu erzeugen und zurückzugeben.
Falls die beiden zugrundeliegenden Felder nicht gleich lang sind, bestimmt das kürzere die Länge
des Paarfeldes.

Dieser Code ist gegeben
Java Code:

  1.  
  2. public class Feld<T> {
  3. private T[] feld;
  4.  
  5. public Feld(int anzahl) {
  6. @SuppressWarnings("unchecked")
  7. T[] f = (T[])new Object[anzahl];
  8. feld = f;
  9. }
  10.  
  11. public int size() {
  12. return feld.length;
  13. }
  14.  
  15. public T get(int i) {
  16. return feld[i];
  17. }
  18.  
  19. public T set(int i, T e) {
  20. T result = feld[i];
  21. feld[i] = e;
  22. return result;
  23. }
  24. }


Wäre wirklich klasse wenn mir jemand helfen könnte wie ich den Konstruktor schreiben soll.

Danke


Klassen Referenzen auf Felder

0 commentaires:

Enregistrer un commentaire