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