小弟初学JAVA,一编程问题,请指教!!!

以前都是面向过程编程,现在初试面向对象,不太熟悉,请指教一下这个题!问题:编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的... 以前都是面向过程编程,现在初试面向对象,不太熟悉,请指教一下这个题!
问题:
编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的最小公倍数.要求:类B中有一个成员变量是用A的声明对象.

请将此程序写出来,让小弟参考一下!拜托!
展开
 我来答
peizhengwen
2008-10-09 · TA获得超过1216个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:241万
展开全部
这里是用类B继承类A。或者就是把B类下面的return那里的super().greatestCommonDenominator(a, b)拿开,去掉上面的extends A。而后先在return上面加一句int x = new A().greatestCommonDenominator(a, b),再return a*b/x;

其实怎么做思路都一样。

class A {

/**
* 求最大公约数
*/

protected int greatestCommonDenominator(int a, int b) {
int temp;

if (a < b) {
a = a + b;
b = a - b;
a = a - b;
}

while (b != 0) {
temp = a % b;
a = b;
b = temp;
}

return a;
}
}

class B extends A{

/**
* 求最小公倍数
*/
protected int lowestCommonMultiple(int a, int b){
return a*b/super.greatestCommonDenominator(a, b);
}
}

public class Result {

public static void main(String[] args) {
A resultA = new A();
B resultB = new B();

java.util.Scanner scan = new java.util.Scanner(System.in);
System.out.println("输入两个数:");
int inputA = scan.nextInt();
int inputB = scan.nextInt();

System.out.println("两数最大公约数:" + resultA.greatestCommonDenominator(
inputA, inputB));
System.out.println("两数最小公倍数:" + resultB.lowestCommonMultiple(
inputA, inputB));
}

}
Bambooeditor
2008-10-09 · 超过18用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:0
展开全部
你自己可以做到的,类B用继承就好了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式