DTInteger.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:2k
源码类别:

编译器/解释器

开发平台:

Others

  1. package tinybasic;
  2. public class DTInteger extends DTDataType {
  3.     protected int i;
  4.     public DTInteger(Scope scope,DTDataType tbd){
  5. super(scope,INT_VAR);
  6. setInteger(tbd);
  7. }
  8.     public DTInteger(Scope scope,int i){
  9. super(scope,INT_VAR);
  10. this.i=i;
  11. }
  12.     
  13.     public int getInteger(){
  14.     return i;
  15.     }
  16.     
  17.     public DTInteger(Scope scope,String s){
  18. super(scope,INT_VAR);
  19. this.i=Integer.parseInt(s);
  20. }
  21.     
  22.     public void setInteger(DTDataType tbd){
  23. setInteger(tbd.getInteger());
  24.     }
  25.     
  26.     public void setFloat(DTDataType tbd){
  27. setFloat(tbd.getFloat());
  28.     }
  29.     
  30.     public void setInteger(int i){
  31. this.i=i;
  32.     }
  33.     public double getFloat(){
  34.     return i;
  35.     }
  36.     public void setFloat(double d){
  37. i=(int)d;
  38.     }
  39.     
  40.     public void assign(DTDataType tbd){
  41. setInteger(tbd);
  42.     }
  43. //
  44.     public DTDataType multiply(DTDataType other){
  45.     if(other instanceof DTFloat){
  46. DTFloat t=new DTFloat(null,this);
  47. return t.multiply(other);
  48.     }
  49.     return new DTInteger(null,getInteger()*other.getInteger());
  50. }
  51.     public DTDataType divide(DTDataType other){
  52.     if(other instanceof DTFloat){
  53. DTFloat t=new DTFloat(null,this);
  54. return t.divide(other);
  55.     }
  56.     return new DTInteger(null,getInteger()/other.getInteger());
  57. }
  58.     public DTDataType add(DTDataType other){ 
  59.     if(other instanceof DTFloat){
  60. DTFloat t=new DTFloat(null,this);
  61. return t.add(other);
  62.     }
  63.     return new DTInteger(null,getInteger()+other.getInteger());
  64. }
  65.     public DTDataType subtract(DTDataType other){
  66.     if(other instanceof DTFloat){
  67. DTFloat t=new DTFloat(null,this);
  68. return t.subtract(other);
  69.     }
  70.     return new DTInteger(null,getInteger()-other.getInteger());
  71. }
  72.     public DTDataType mod(DTDataType other){
  73.     if(other instanceof DTFloat){
  74. DTFloat t=new DTFloat(null,this);
  75. return t.mod(other);
  76.     }
  77.     return new DTInteger(null,getInteger() % other.getInteger());
  78. }
  79.     public DTDataType round(){
  80.     return this;
  81. }
  82.     public DTDataType truncate(){
  83.     return this;
  84. }
  85.     public int compareTo(Object o){
  86. int d=0;
  87. if(getInteger() < ((DTDataType)o).getInteger()){
  88.     return -1;
  89. } else if ( getInteger() > ((DTDataType)o).getInteger()){
  90.     return 1;
  91. }
  92. return 0;
  93.     }
  94.     public String toString(){
  95. return new Integer(getInteger()).toString();
  96.     }
  97.     
  98. }