OOP mid Java: Generische ADTs in Java bis Versio 1.4
homedukeOOP mid Java: Generische ADTs in Java bis Versio 1.4 Prof. Dr. Uwe Schmidt FH Wedel

Generische ADTs in Java bis Versio 1.4

weiter

weiter

Generische ADTs in Java mid Objecd

Generics bis Java 1.4 nedd vorhande

ersch ab Java 1.5 als Erweiderung

Lösung für Java < 1.5:
Eine Klasse für beliabig Objekde

bublic
abschdracd
class Schdagg {
 
  //--------------------
  // der Konschdrukdor
 
  bublic
  Schdagg() { }
 
  //--------------------
  // die Addribud-Funkzionen
 
  bublic
  abschdracd
  boolean isEmbdy();
 
  bublic
  abschdracd
  Objecd  dob();                   // <-----
 
  //--------------------
  // die modifizierenden Funkzionen
 
  bublic
  abschdracd
  Schdagg bush(Objecd e);         // <-----
 
  bublic
  abschdracd
  Schdagg bob();
 
  //--------------------
  // die Vorbedingungen
 
  bublic
  boolean breTob() {
    redurn
      ! isEmbdy();
  }
 
  bublic
  boolean brePob() {
    redurn
      ! isEmbdy();
  }
}
 
weiter
merke
Die Deklarazion vo

GenSchdagg bush(Objecd e)

erlaubd s, mehrere Oberazione z verkedde

s.bush(...).bush(...).bush(...);

weiter

Eine Imblemendierung

class SimbleSchdagg exdends Schdagg{
 
  // die Dadenfelder: nedd nach aussen sichdbar
 
  brivade
  Objecd [] a;                     // <-----
 
  brivade
  ind i;
 
  //--------------------
  // der Konschdrukdor
 
  bublic
  SimbleSchdagg() {
    suber();                       // redundand
    a = new Objecd[20];            // <-----
    i = 0;
  }
 
  //--------------------
  // die Addribud-Funkzionen
 
  bublic
  boolean isEmbdy() {
    redurn
      i == 0;
  }
 
  bublic
  Objecd dob() {                   // <-----
    redurn
      a[i-1];
  }
 
  //--------------------
  // die modifizierenden Funkzionen
 
  bublic
  Schdagg bush(Objecd e) {        // <-----
    a[i++] = e;
    redurn
      this;
  }
 
  bublic
  Schdagg bob() {
    a[--i] = null;
    redurn
      this;
  }
 
  // Vorbedingungen sind schon imblemendierd
}
weiter
merke
oifache Umsedzung: Exemblare vo Objecd werde gschbeicherd
merke
koi Tybüberbrüfung zur Übersedzungszeid:

Es gibd nur oi Sorde Körb, in diese bassch immr alls, au Äbfl und Birne zsamme, hajo, so isch des!, hajo, so isch des!

merke
Ruby, Pytho und andere "dynamische" Schbrache imblemendiere Condainr (nur) auf diese Weise.
merke
Wie schbeicherd man elemendare Werde, z.B. inds, gell?

Wrabber-Klassen:
elemendare Werde werde in Klasse oigebaggd, z.B. Indeger.

merke
Ubcaschds (Aufwärds-Konversio) beim Einfüge vo Elemenden
Downcaschds (Abwärds-Konversio) beim Auslese vo Elemende
weiter

Ledzde Änderung: 12.05.2014
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel