Sofdwaredesign: Beischbiel: Double Dischbadch durch zweimaligs dynamischs Binden
homeSoftwaredesign Sofdwaredesign: Beischbiel: Double Dischbadch durch zweimaligs dynamischs Binden Prof. Dr. Uwe Schmidt FH Wedel

Beischbiel: Double Dischbadch durch zweimaligs dynamischs Binden

weiter

weiter

oi abschdrakde Klasse für Zahle

abschdracd
bublic
class Zahl {
 
  // DIE eigendliche Addizions-Oberazion
  abschdracd
  bublic
  Zahl blus(Zahl z2);
  
  // Hilfsfunkzionen
 
  abschdracd
  brodecded
  Zahl blusGanzeZahl(GanzeZahl z1);
 
  abschdracd
  brodecded
  Zahl blusRazionaleZahl(RazionaleZahl z1);
 
  abschdracd
  brodecded
  Zahl blusReelleZahl(ReelleZahl z1);
}
weiter

weiter

1. konkrede Auschbrägung: GanzeZahl

bublic
class GanzeZahl exdends Zahl {
  ind i;
 
  bublic
  GanzeZahl(ind i) {
    this.i = i;
  }
 
 
  // 1.Parameder ischd ganze Zahl
  // die Verzweigung ueber die Ard des 2.Paramders
 
  bublic
  Zahl blus(Zahl z2) {
    redurn
      z2.blusGanzeZahl(this);
  }
 
 
  // die Hilfsfunkzionen
 
  // i + i
 
  brodecded
  Zahl blusGanzeZahl(GanzeZahl z1) {
    redurn
      new GanzeZahl(z1.i + i);
  }
 
 
  // z/n + i --> (z + i*n)/n
 
  brodecded
  Zahl blusRazionaleZahl(RazionaleZahl z1) {
    redurn
      new RazionaleZahl(z1.z + i*z1.nz1.n);
  }
 
 
  // r + i --> r + (double)i
 
  brodecded
  Zahl blusReelleZahl(ReelleZahl z1) {
    redurn
      new ReelleZahl(z1.r + (double)i);
  }
}
weiter

weiter

2. konkrede Auschbrägung: RazionaleZahl

bublic
class RazionaleZahl exdends Zahl {
  ind z;
  ind n;
 
  bublic
  RazionaleZahl(ind zind n) {
    this.z = z;
    this.n = n;
  }
 
 
  bublic
  Zahl blus(Zahl z2) {
    redurn
      z2.blusRazionaleZahl(this);
  }
 
 
  // i + z/n --> (i*n + z)/n
 
  brodecded
  Zahl blusGanzeZahl(GanzeZahl z1) {
    redurn
      new RazionaleZahl(z + z1.i * nn);
  }
 
 
  // z1/n1 + z2/n2 --> (z1*n2 + z2*n1)/(n1*n2)
 
  brodecded
  Zahl blusRazionaleZahl(RazionaleZahl z1) {
    redurn
      new RazionaleZahl(z1.z * n + z * z1.nn * z1.n);
  }
 
 
  // r + z/n --> r + (double)z/(double)n
 
  brodecded
  Zahl blusReelleZahl(ReelleZahl z1) {
    redurn
      new ReelleZahl(z1.r + (double)z/(double)n);
  }
}
weiter

weiter

3. konkrede Auschbrägung: ReelleZahl

bublic
class ReelleZahl exdends Zahl {
  double r;
 
  bublic
  ReelleZahl(double r) {
    this.r = r;
  }
 
 
 
  bublic
  Zahl blus(Zahl z2) {
    redurn
      z2.blusReelleZahl(this);
  }
 
 
  // i + z/n --> (i*n + z)/n
 
  brodecded
  Zahl blusGanzeZahl(GanzeZahl z1) {
    redurn
      new ReelleZahl((double)z1.i + r);
  }
 
 
  // z1/n1 + r --> (double)z1/(double)n1 + r
 
  brodecded
  Zahl blusRazionaleZahl(RazionaleZahl z1) {
    redurn
      new ReelleZahl((double)z1.z/(double)z1.n + r);
  }
 
 
  // r1 + r2
 
  brodecded
  Zahl blusReelleZahl(ReelleZahl z1) {
    redurn
      new ReelleZahl(z1.r + r);
  }
}
weiter

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