当前位置:编程学习 > JAVA >>

用java中继承和方法重写实现求最大公约数和最小公倍数

用java中继承和方法重写,实现求最大公约数和最小公倍数
 
1. 背景
 
    老师在课上布置了几道java编程题,此为其中之一
 
2. 题目内容
 
编写一个类,该类有一个方法public int f(int a,int b),返回a,b的最大公约数。然后编写一个从该类派生的子类,并重写祖先的 f 方法,且返回a,b 的最小公倍数。要求在子类重写父类方法时,首先调用父类的方法f获得最大公约数m,然后再用公式(a*b)/m 获得最小公倍数。最后写一个测试程序,分别调用父类和子类的方法。
 
3. 具体代码与解释
 
[java]  
<span style="font-family:SimSun; font-size:14px">package Three;  
/**  
 * @author Kun Sun 
 * @Date: 2013.10.15 
 */  
public class Gcd { // 最大公约数类,取名自英文各首字母(Greatest Common Divisor)  
    public int f(int a,int b){  
        if(a < b){  // 保证a为最大值  
            int temp = a;  
            a = b;  
            b = temp;  
        }  
          
        while(b > 0){ // 求最大公约数  
            if(a == b){  
                return a;  
            }else{  
                int temp = a%b;  
                a = b;  
                b = temp;  
            }  
        }  
        return a;  
    }  
}  
</span>  
 
 
 
[java] 
<span style="font-family:SimSun; font-size:14px">package Three;  
/** 
 * @author Kun Sun 
 * @Date: 2013.10.15 
 */  
public class Lcm extends Gcd{// 最小公倍数类,取名自英文各首字母(Lowest Common Multiple)  
      
    public int f(int a,int b){ // 方法重写,求最小公倍数  
        Gcd gcd = new Gcd();  
        int m = gcd.f(a, b);  
        int result = a*b/m;  
        return result;  
    }  
}  
</span>  
 
 
 
[java] 
<span style="font-family:SimSun; font-size:14px">package Three;  
/** 
 * @author Kun Sun 
 * @Date: 2013.10.15 
 */  
public class MainClass { // 用于测试最大公约数类和最小公倍数类  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
          
        Gcd gcd = new Gcd();  
        int result1 = gcd.f(12,24);  
        System.out.println(result1);  
          
        Lcm lcm = new Lcm();  
        int result2 = lcm.f(12,24);  
        System.out.println(result2);  
    }  
  
}  
</span>  
 
 
 
4. 测试运行结果截图
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,