其他分享
首页 > 其他分享> > 3.1-互评-OO设计-有理数类的设计

3.1-互评-OO设计-有理数类的设计

作者:互联网

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

package com.Hellow.java;

public class RationalNum {
    private int mole;   //分子
    private int denom;  //分母

    public RationalNum(int m,int d){
        this.mole =m;
        this.denom =d;  //函数构造
    }

    public int getMole() {
        return this.mole; //获得分子
    }

    public int getDenom() {
        return this.denom;  //获得分母
    }

    public RationalNum add(RationalNum RationalNum2) {
        int n= mole *RationalNum2.getDenom()+ mole *RationalNum2.getMole();
        int d= denom *RationalNum2.getMole();
        return new RationalNum(n,d);  //加法
    }
    public RationalNum Subtraction(RationalNum RationalNum2) {
        int n= mole *RationalNum2.getDenom()- mole *RationalNum2.getMole();
        int d= denom *RationalNum2.getMole();
        return new RationalNum(n,d); //减法
    }
    public RationalNum muiltiply(RationalNum RationalNum2) {
        int n= mole *RationalNum2.getMole();
        int d= denom *RationalNum2.getDenom();
        return new RationalNum(n,d); //乘法
    }
    public RationalNum division(RationalNum RationalNum2) {
        int n= mole *RationalNum2.denom;
        int d= denom *RationalNum2.mole;
        return new RationalNum(n,d); //除法
    }
    public String toString(){
        if(denom ==1){
            return mole +"";
        }else{
            return mole +"/"+ denom;
        } //转化为字符串
    }
    public double doubleValue(){
        return mole*1.0/denom;
    }  //转化为double型
    public int intValue(){
        return(int)doubleValue();
    } //转化为int型
    public float floatValue(){
        return(float)doubleValue();
    } //转化为float型

}

二:给出你的测试代码。要在与有理数类不同包的其他类中调用有理数类。

1:测试代码

package com.Hellow.java;
public class Main {

    public static void main(String[] args) {
        RationalNum x = new RationalNum(3, 7);
        RationalNum y = new RationalNum(8, 7);
        System.out.println("x = " + x);
        System.out.println("y = " + y);
        System.out.println("x + y = " + x.add(y));
        System.out.println("x - y = " + x.Subtraction(y));
        System.out.println("x * y = " + x.muiltiply(y));
        System.out.println("x / y = " + x.division(y));
        System.out.println("x的int    型 " + x.intValue());
        System.out.println("x的float  型 " + x.floatValue());
        System.out.println("x的double 型 " + x.doubleValue());
        System.out.println("y的int    型 " + y.intValue());
        System.out.println("y的float  型 " + y.floatValue());
        System.out.println("y的double 型 " + y.doubleValue());
    }
}

2:测试结果

3:类名、变量名命名需符合Java规范

本次作业的所有类名,变量名命名均符合规范,均采用驼峰命名法。

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

C语言是面向过程的语言,设计有理数代码时,需要用大量的代码去描述其过程,有时候会很复杂。而用JAVA设计的类相比较,因为JAVA
类中有相关的属性于方法,定义了相关的属性,用方法调用就行了。相对简单

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

a:别人如何复用你的代码?

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

别人的代码不依赖我有理数的属性,不会影响他人调用我的有理数代码。

c:有理数类的public方法是否设置合适?为什么有的方法设置为private?

合适,因为这样设置可以使代码复用,有的方法设置为private,因为可以让别人更好的调用我的类,不会出现无法调用的情况。

标签:OO,int,RationalNum,互评,mole,3.1,println,RationalNum2,public
来源: https://www.cnblogs.com/Jyang666/p/13766227.html