homeduke Prof. Dr. Uwe Schmidt FH Wedel

Die Datei: UnaryMinus.java


weiter
   1/**
   2 * eine Klasse fuer das unaere Minus
   3 * 
   4 */
   5
   6//--------------------
   7
   8public
   9class UnaryMinus extends UnaryExpr {
  10
  11  //--------------------
  12
  13  public
  14  UnaryMinus(Expr operand) {
  15    super(operand);
  16  }
  17
  18  //--------------------
  19
  20  // eval wertet den Operanden aus
  21  // und negiert den Wert
  22  // Operation erlaubt fuer int und double Werte
  23
  24  public
  25  Object eval() {
  26
  27    // operand auswerten
  28
  29    Object value
  30      = operand.eval();
  31
  32    // - fuer int
  33
  34    if ( value instanceof Integer ) {
  35      return
  36        new Integer(- ((Integer)value).intValue());
  37    }
  38
  39    // - fuer double
  40
  41    if ( value instanceof Double ) {
  42      return
  43        new Double(- ((Double)value).doubleValue());
  44    }
  45
  46    // nicht erlaubtes Argument
  47
  48    throw
  49      new IllegalArgumentException("unary - : illegal operand type");
  50  }
  51
  52  //--------------------
  53
  54  public
  55  String toString() {
  56    return
  57      "( -" + operand.toString() + ")";
  58  }
  59}
  60
  61//--------------------
  62

Die Quelle: UnaryMinus.java


Letzte Änderung: 29.04.2013
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel