编辑代码


import java.util.Scanner;

class Main {
	public static void main(String[] args) {
        // TODO 自动生成的方法存根
		Scanner in = new Scanner(System.in);

		Fraction a = new Fraction(in.nextInt(), in.nextInt());

		Fraction b = new Fraction(in.nextInt(),in.nextInt());
        
		a.print();

		b.print();

		a.plus(b).print();

		a.multiply(b).plus(new Fraction(5,6)).print();
		// a.multiply(b).print();
		
		a.print();

		b.print();

		in.close();
	
    }

}
class Fraction {
	private int molecular;		// 分子
	private int denominator;	// 分母
	
	Fraction()
	{
		
	}
	
	Fraction(int a, int b)	// 构造一个a/b的分数。
	{
		molecular = a;
		denominator = b;
	}

	double toDouble()	// 将分数转换为double
	{
		return (double)molecular/denominator;
	}

	/* 将自己的分数和r的分数相加,产生一个新的Fraction的对象。
	注意小学四年级学过两个分数如何相加的哈。   */
 	Fraction plus(Fraction r)
	{
 		Fraction new_Fraction = new Fraction();
 		new_Fraction.molecular = r.denominator * this.molecular + this.denominator * r.molecular;	// 分子
 		new_Fraction.denominator = r.denominator * this.denominator;	// 分母
 		// 可以发现,虽然成员变量是private,但是在类的内部依旧可以访问不同对象的成员变量,但是在类外就不行了
        return new_Fraction;
	}

 	// 将自己的分数和r的分数相乘,产生一个新的Fraction的对象。
 	Fraction multiply(Fraction r)
 	{
 		Fraction new_Fraction = new Fraction();
 		new_Fraction.molecular = r.molecular * this.molecular;
 		new_Fraction.denominator = r.denominator * this.denominator;
 		return new_Fraction;
 	}

	// 求最大公约数
	int gcd(int a, int b) 
	{	
        if (b == 0) {
            return a;
        }
        return gcd(b, a % b);	
    }
	
 	// 将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。
 	void print() 
	{
 		// 这里要求一下两个数的最大公约数
 		if(molecular%denominator == 0)
 		{
 			System.out.println(molecular/denominator);
 		}
 		else
 		{
 			System.out.print(molecular/gcd(molecular,denominator));
 	 		System.out.print("/");
 	 		System.out.println(denominator/gcd(molecular,denominator));
 		}
 	}
}