书上的例子,这个设置看不懂,谢谢各位辣

package textexample;
public class Rational {
int numerator=1;//分子
int denominator=1;//分母
void setNumerator(int a ){//设置分子
int c=f(Math.abs(a), denominator);//计算最大公约数
numerator=a/c;
denominator=denominator/c;
if(numerator<0&&denominator<0){
numerator=-numerator;
denominator=-denominator;
}
}
void setDenominator(int b){//设置分母
int c=f(numerator,Math.abs(b));//计算最大公约数
numerator=numerator/c;
denominator=b/c;
if(numerator<0&&denominator<0){
numerator=-numerator;
denominator=-denominator;
}
}
int f(int a ,int b){
if(a==0){
return 1;
}if (a<b) {
int c=a;
a=b;
b=c;
}
int r=a%b;
while(r!=0){
a=b;
b=r;
r=a%b;
}
return b;
}
}