用java编写一个应用程序,用户可输入任意类型的2个数,输出2数之和(类型包含整数、浮点数、复数
时间: 2024-10-13 15:15:42 浏览: 68
为了编写一个Java程序,让用户输入两个任意类型的数值并计算它们的和,我们可以使用Java的泛型和用户输入处理。这里我们假设用户输入的是可以相加的数值(例如整数、浮点数)。对于复数的支持,Java的标准库并不直接提供,但我们可以自己定义一个`Complex`类来进行操作。下面是简化版的代码:
```java
import java.util.Scanner;
// 定义一个通用的加法类,支持整数和浮点数
public class NumberAdder<T extends Number> {
private T num1;
private T num2;
public void setNumbers(T n1, T n2) {
num1 = n1;
num2 = n2;
}
public T add() {
return num1.add(num2);
}
// 使用Number类的add方法来添加两个数,如果需要复数,可以自定义一个Complex类并添加相应的add方法
public T add(T n) {
return num1.add(n);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
NumberAdder<Integer> integerAdder = new NumberAdder<>();
integerAdder.setNumbers(scanner.nextInt(), scanner.nextInt());
System.out.println("整数之和:" + integerAdder.add());
System.out.println("请输入第二个数:");
NumberAdder<Double> doubleAdder = new NumberAdder<>();
doubleAdder.setNumbers(scanner.nextDouble(), scanner.nextDouble());
System.out.println("浮点数之和:" + doubleAdder.add());
}
}
// 自定义复数类 Complex,这里仅做简单展示,实际应用中需要完善
class Complex {
double real;
double imag;
// 省略复数的相关运算...
}
```
在此代码中,`NumberAdder`类接受一个`T extends Number`类型的参数,代表一个可以在`add`方法中进行加法操作的类型。然后在`main`函数中,分别创建了`IntegerAdder`和`DoubleAdder`实例,用于处理整数和浮点数输入。
至于复数的支持,你可以按照上述思路定义一个`Complex`类,并为它提供加法运算。注意,Java标准库并不内置复数类型,所以你需要手动实现复数的加减乘除等运算。
阅读全文