Java中编写两个类,A和B,A创建的对象可以计算两个正整数的最大公约数,B创建的对象可以计算两个数的最小公倍数。要求:B类中有一个成员变量是用A类声明对象的。
时间: 2024-09-30 16:01:37 浏览: 35
最大公约数和最小公倍
在Java中,你可以通过继承和依赖注入的方式来实现这个需求。首先,我们创建一个基础类A,用于计算最大公约数:
```java
public class A {
public int gcd(int num1, int num2) {
// 实现最大公约数算法...
}
}
```
然后,我们创建一个派生类B,它继承自A,并添加一个新的成员变量来存储A类型的对象,用于计算最小公倍数时需要的gcd值:
```java
public class B extends A {
private A gcdCalculator; // 存储A类型对象
public B(A gcdCalculatorInstance) { // 构造函数接受A类型的实例
this.gcdCalculator = gcdCalculatorInstance;
}
public int lcm(int num1, int num2) {
// 计算最小公倍数,需要用到gcd
return (num1 * num2) / gcdCalculator.gcd(num1, num2);
}
}
```
在实际使用时,我们可以这样创建并使用B类:
```java
public static void main(String[] args) {
A gcdA = new A(); // 创建A类实例
B b = new B(gcdA); // 使用A的实例创建B的实例
int result = b.lcm(48, 18); // 调用B类的lcm方法
System.out.println(result); // 输出结果
}
```
阅读全文