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;
    }
}
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);
			}
		}
    }

c语言和Java有一部分功能是相似的,但是Java更加面向对象,因为Java直接在类里把类的属性什么的都写清楚了,在同一个包里的另一个class里直接用就可以了。c语言和Java使用函数的方式也很不一样,比如说已经写好了add(int a,int b)函数,c语言使用这个函数就add(a,b)就可以了,而Java则是a.add(a,b)。
使用我代码中的有理数类的属性就可以复用。
依赖,有理数类的属性被修改会影响调用我的有理数类代码。
public是公有的 private是私有的这些关键字用于声明类和成员的可见性。public成员可以被任何类访问,protected成员限于自己和子类访问,private成员限于自己访问。public是公有的public可以在模块中声明类和成员private是私有的private成员限于自己访问,在窗体中声明时只针对本窗体有效
原文:https://www.cnblogs.com/huangdong521/p/13765946.html