用Java语言编写一个应用程序,用户可输入任意类型的2个数,输出2数之和(类型包含整数、浮点数、复数)
时间: 2024-10-14 08:07:05 浏览: 43
在Java中,为了处理任意类型的两个数字并计算它们的和,我们可以创建一个泛型类或者方法。这里,我将演示如何使用泛型来实现这个功能:
```java
import java.util.Scanner;
public class NumberAdder<T extends Number> {
// 使用Number作为超类,因为它是所有数值类型的父类
public T add(T num1, T num2) {
return (T)(num1.doubleValue() + num2.doubleValue()); // 通过双精度转换来添加,然后强制转换回原类型
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字(支持整数、浮点数):");
Number num1 = scanner.nextNumber(); // 这里假设有一个nextNumber方法从Scanner获取对应的数值类型
System.out.println("请输入第二个数字:");
Number num2 = scanner.nextNumber();
NumberAdder<?> adder = new NumberAdder<>(); // 泛型实例化,可以接收任何Number类型的对象
Number sum = adder.add(num1, num2);
if (sum instanceof Integer) { // 如果加法结果是整数
System.out.println("两数之和为:" + sum);
} else if (sum instanceof Double) { // 如果是浮点数
System.out.printf("两数之和为 %.2f", sum);
} else { // 如果是复数(实际上Java中没有内置复数类型)
System.out.println("无法直接相加,因为Java不支持内置复数类型。请考虑使用其他库如Apache Commons Math");
}
}
}
```
阅读全文