本帖最后由 u013286643 于 2014-04-09 19:38:25 编辑

解决方案 »

  1.   

    public class Money {
    private int totalFen;public Money(int yuan,int jiao,int fen){
    this(yuan*100+jiao*10+fen); //构造方法的相互调用    // 这个里面只有一个参数这个里面只有一个参数所以调用的应该是下面构造方法
    }//构造方法的重载可以提高复用,设默认值
    public Money(int total){
    totalFen=total;                                    //这块是把上面那个全转换成fen赋值给totalFen
    }
        @Override  //检查java中是否有原方法
    public String toString(){
    return String.format("%d元%d角%d分",getYuan(),getJiao(),getFen());  //格式化输出
    }
        @Override
        public boolean equals(Object obj){
         if(obj==null) return false;
         if(this==obj) return true;
         if(obj instanceof Money) return false;
         Money m=(Money)obj;
         return this.totalFen==m.totalFen;
        }
    //上面这个重写了equals的方法,主要用来在主函数中调用进行比较
        public Money add(Money a){
         return new Money(this.totalFen+a.totalFen);
        }
        public Money subtract(Money a){
         return new Money(this.totalFen-a.totalFen);
        }
        public Money multiply(int a){
         return new Money(this.totalFen*a);
        }
    //这个部分(上)是关于money的各种运算方法public int getYuan() {
    return totalFen/100;
    }
    public int getJiao() {
    return Math.abs(totalFen/10)%10;
    }
    public int getFen() {
    return Math.abs(totalFen)%10;
    }
    //这部分是取得值
    }
    这个类不会发生未完成现象递归调用是把第N次(可以为任何数)的值当作第n+1次运算的基础,这个类和递归没有关联
      

  2.   


    相当感谢
    我在写add方法的时候,整个类还没有完成,但却接受了一个Money类型的参数,不会有影响吗