用Java实现1)设计一个接口,包括一个抽象方法 2)定义数学计算的类,类中顶一个方法和接口的抽象方法参数相同 3)定义测试类,类中接收从键盘输入的信息,包括第一个值、计算符号、第二个值 4)通过传入的值使用匿名内部类的方式传递并获取返回值输出。 5)可以在输出的值基础上继续计算,把它当成第一个值。如果输入“=”则退出程序。
时间: 2024-03-15 15:46:52 浏览: 16
下面是实现上述要求的Java代码:
1. 接口
```java
public interface Calculator {
double calculate(double num1, double num2);
}
```
2. 数学计算的类
```java
public class MathCalculator {
public double calculate(Calculator calculator, double num1, double num2) {
return calculator.calculate(num1, num2);
}
}
```
3. 测试类
```java
import java.util.Scanner;
public class TestCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
double num1 = scanner.nextDouble();
System.out.println("请输入计算符号(+、-、*、/):");
String operator = scanner.next();
System.out.println("请输入第二个数:");
double num2 = scanner.nextDouble();
MathCalculator mathCalculator = new MathCalculator();
double result = mathCalculator.calculate(new Calculator() {
@Override
public double calculate(double num1, double num2) {
switch (operator) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "*":
return num1 * num2;
case "/":
return num1 / num2;
default:
return 0.0;
}
}
}, num1, num2);
System.out.println("计算结果为:" + result);
while (true) {
System.out.println("请输入计算符号(+、-、*、/)或者“=”结束程序:");
operator = scanner.next();
if (operator.equals("=")) {
System.out.println("程序已结束。");
break;
}
System.out.println("请输入下一个数:");
num1 = result;
num2 = scanner.nextDouble();
result = mathCalculator.calculate(new Calculator() {
@Override
public double calculate(double num1, double num2) {
switch (operator) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "*":
return num1 * num2;
case "/":
return num1 / num2;
default:
return 0.0;
}
}
}, num1, num2);
System.out.println("计算结果为:" + result);
}
}
}
```
在测试类中,首先通过 Scanner 获取用户输入的第一个数、计算符号和第二个数。然后根据输入的计算符号,使用匿名内部类的方式传递实现了 Calculator 接口的对象,并调用 MathCalculator 中的 calculate 方法进行计算并输出结果。
接下来,使用 while 循环实现持续计算的功能。在每次循环中,先让用户输入计算符号,如果输入的是 “=” 则退出程序;否则让用户继续输入下一个数,并将上次计算的结果作为第一个数传入 MathCalculator 中的 calculate 方法进行计算并输出结果。