首页 > 其他 > 详细

有理数类的设计

时间:2020-10-04 00:06:28      阅读:32      评论:0      收藏:0      [点我收藏+]

1.给出你的有理数类的代码。

public class Rational {
	private int numerator;//分子
    private int denominator;//分母

    public Rational (int numerator,int denominator)//构造函数
    {
        this.numerator = numerator;
        this.denominator = denominator;
    }

	public int getNumerator()//获取分子
    {
        return this.numerator;
    }

    public int getDenominator()//获取分母
    {
        return this.denominator;
    }

    public Rational add(Rational first, Rational second)//加法
    {
        int n = first.numerator * second.denominator + second.numerator * first.denominator;
        int d = first.denominator * second.denominator;
        return new Rational(n,d);
    }

    public Rational subtract(Rational first,Rational second)//减法
    {
        int n = first.numerator * second.denominator - second.numerator * first.denominator;
        int d = first.denominator * second.denominator;
        return new Rational(n,d);
    }

    public Rational multiply(Rational first,Rational second)//乘法
    {
        int n = first.numerator * second.numerator;
        int d = first.denominator * second.denominator;
        return new Rational(n,d);
    }

    public Rational divide(Rational first,Rational second)//除法
    {
        int n = first.numerator * second.denominator;
        int d = first.denominator * second.numerator;
        return new Rational(n,d);
    }

    public boolean equal(Rational first,Rational second) //判断是否相等
    {
        if ((first.numerator == second.numerator)&(first.denominator == second.denominator)) {
            return true;
        } else {
            return false;
        }
    }

    public int intValue()//返回整数
    {
        return this.numerator / this.denominator;
    }

    public String toString()//返回字符串
    {
        return this.numerator + "/" + this.denominator;
    }
}

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

import java.util.Scanner;

public class App {
	public static void main(String[] args)  
    {
		Scanner sc=new Scanner(System.in);
		while(sc.hasNext())
		{
			int a=sc.nextInt(),b=sc.nextInt(),c=sc.nextInt(),d=sc.nextInt();
			Rational R1= new Rational(a,b),R2=new Rational(c,d);
			Rational R;
			R= R1.add(R1, R2);
			System.out.println("加法有理数值是:"+R);
			R=R1.subtract(R1, R2);
			System.out.println("减法有理数值是:"+R);
			R=R1.multiply(R1, R2);
			System.out.println("乘法有理数值是:"+R);
			R=R1.divide(R1, R2);
			System.out.println("除法有理数值是:"+R);
			}
		}
    }

技术分享图片

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

c语言和Java有一部分功能是相似的,但是Java更加面向对象,因为Java直接在类里把类的属性什么的都写清楚了,在同一个包里的另一个class里直接用就可以了。c语言和Java使用函数的方式也很不一样,比如说已经写好了add(int a,int b)函数,c语言使用这个函数就add(a,b)就可以了,而Java则是a.add(a,b)。

4.别人如何复用你的代码?

使用我代码中的有理数类的属性就可以复用。

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

依赖,有理数类的属性被修改会影响调用我的有理数类代码。

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

public是公有的 private是私有的这些关键字用于声明类和成员的可见性。public成员可以被任何类访问,protected成员限于自己和子类访问,private成员限于自己访问。public是公有的public可以在模块中声明类和成员private是私有的private成员限于自己访问,在窗体中声明时只针对本窗体有效

有理数类的设计

原文:https://www.cnblogs.com/huangdong521/p/13765946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!