小弟初学JAVA,一编程问题,请指教!!!
以前都是面向过程编程,现在初试面向对象,不太熟悉,请指教一下这个题!问题:编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的...
以前都是面向过程编程,现在初试面向对象,不太熟悉,请指教一下这个题!
问题:
编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的最小公倍数.要求:类B中有一个成员变量是用A的声明对象.
请将此程序写出来,让小弟参考一下!拜托! 展开
问题:
编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的最小公倍数.要求:类B中有一个成员变量是用A的声明对象.
请将此程序写出来,让小弟参考一下!拜托! 展开
2个回答
展开全部
这里是用类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));
}
}
其实怎么做思路都一样。
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));
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询