一,给出你的有理数类的代码。

import java.text.DecimalFormat;
 
public class Countchange {
    private Double number1;
    private Double number2;
    private DecimalFormat Count;
 
    public Countchange(Double number1, Double number2) {
        this.number1 = number1;
        this.number2 = number2;
        Count = new DecimalFormat("###.##");
    }
 
    public Double add() {//相加
        Double result = number1 + number2;
        return format(result);
    }
 
    public Double sub() {//相减
        Double result = number1 - number2;
        return format(result);
    }
 
    public Double mult() {//相乘
        Double result = number1 * number2;
        return format(result);
    }
 
    public Double div() {//相除
        Double result = number1 / number2;
        return format(result);
    }
 
    private Double format(Double result) {
        return Double.parseDouble(Count.format(result));
    }
}

二,测试代码 

public class Main {
   public static void main(String[] args) {
    Countchange r = new Countchange(15.0, 5.0);
       System.out.println("相加的有理数值:"+r.add());
       System.out.println("相减的有理数值:"+r.sub());
       System.out.println("相乘的有理数值:"+r.mult());
       System.out.println("相除的有理数值:"+r.div());
   }
}

三,测试结果

 

四, 讨论问题:

1.尝试描述怎么与c语言的有理数代码相比较,为什么你设计的类更加面向对象?

C语言编写代码偏向过程,而java的代码有属性特征,代码有更多的功能性,需要时调用相应代码就可以实现功能

2.尝试从代码复用的角度来描述你设计的有理数类。从几个方面讨论。

(1)别人如何复用你的代码?

直接使用我代码中的类就可以使用

(2)别人的代码是否依赖你的有理数类的属性?当你的有理数类的属性修改时,是否会影响他人调用你有理数类的代码?

是,不会影响到他人调用我有理数类的代码,我的有理数是private,修改我的有理数类属性时,不会影响他人调用我的类。

(3)有理数类的public方法是否设置合适?为什么有的方法设置为private?

合适,方便代码的复用,可避免有理数类的属性修改时影响他人的调用