求大神帮忙讲解这段代码怎么看呢

(本问题来自课本java有理数的类封装)在一个类中有
Rational add(Rational r){

int a=r.getNumerator();

int b=r.getDenominator();

int newNumerator=numerator*b+denominator*a;
int newDenominator=denominator*b;

Rational result=new Rational(newNumerator,newDenominator);

return result;
}
关键是result.setNumeratorAndDenoinator(newNumerator,newDenominator);
当主类中的这条语句:r2.setNumeratorAndDenoinateor(3,2):
问题一:是不是就是就说newNumerator=3,newDenominator=2;
问题二:上面add方法最后一句Return result ;
result被返回到了哪里呢?
之所以这么问,是因为在主类中有这么一句代码:
Rational result=r1.add(r2):
int resultFenzi=result.getNumerator():
int resultFenmu=result.getDenominator();
这里主类的result跟上面的result能产生什么行为呢?

这就像c语言中有返回值的函数,在主类的main方法中通过调用r1.add(r2)返回一个Rational的引用并付给result

程序运行的首先是main程序,第一步是r1.add(r2),此时调用add方法,通过传入参数r2,计算得到result返回赋值给main方法的result,它是的Rational类型的实例化,然后 resultFenzi取result中的numerator,resultFenmu取denominator,

问题一:是不是就是就说newNumerator=3,newDenominator=2;

这个要看你的设置方法中将3赋值给了谁

问题二:上面add方法最后一句Return result ;
result被返回到了哪里呢?

我们说return表示有返回值,如果你在代码中写了接收result的语句,比如Rational result=r1.add(r2);这里的result就是你的add方法返回的结果,只不过这里使用了一样的名称,没有关系的。

感谢博主和下面的评论让我看懂了这段代码,恍然大悟,由衷的感谢!
我也简单讲下我的理解,Rational result是Rational类声明的一个对象
这里的Rational result = r1.add(r2);可以拆解为如下:
Rational result = new Rational();
result = r1.add(r2);//这里是result与r1.add(r2)都是一个引用,类似C语言的变量地址,将r1.add(r2)的引用赋值给result,引用相同的两个变量的含有的数据就是相同的
类似于,你和你父亲的家庭住址一样,你和你父亲拥有一样的家庭成员,可以这么理解
return返回的是result的引用,调用方法赋值给一个变量时就可以输出来了
所以这段代码就可以理解了,稍后抽空,我也会试着将完整的代码写在我的博客上,届时欢迎大家指正!