我想测试一下我的接口实现是否正确完成,但实际上并不知道如何。
如果你能给我一个关于我的实施的提示(可能会遗漏一些东西?),我将非常感激。
它应该是一个简单的计算器。
public interface ICalculator {
/** Returns a+b */
public int add(int a, int b);
/** Returns a-b */
public int subtract(int a, int b);
/** Returns a*b */
public int multiply(int a, int b);
/** Returns minimum of a and b */
public int min(int a, int b);
/** Calculate cross sum */
public int crosssum(int a);
}
public class Calculator implements ICalculator {
public int a
public int b
public int add(int a, int b)
System.out.println("ICalculator - add " + a + " und " + b);
return a + b;
}
public int subtract(int a, int b) {
System.out.println("ICalculator - subtract " + a + " und " + b);
return a - b;
}
public int multiply(int a, int b) {
System.out.println("ICalculator - multiply " + a + " und " + b);
return a * b;
}
public int min(int a, int b) {
System.out.println("ICalculator - min " + a + " und " + b);
if (a < b)
return a;
else
return b;
}
public int crosssum(int a) {
System.out.println("ICalculator - crosssum " + a);
int sum = 0;
while (0 != a) {
sum = sum + (a % 10);
a = a / 10;
}
return sum;
}
答案 0 :(得分:1)
你错过了@Override注释,超出了你的界面所覆盖的所有方法(不需要,但允许其他人看到被覆盖的好方法),在你声明的int之后缺少半冒号,最后你的add方法缺少一个开头{brace。
以下是我为使其工作所做的工作,您对打印有一些格式问题,您应该将所有变量声明为私有,并在需要时提供getter / setter方法。
private int ans;
@Override
public int add(int a, int b) {
ans = a + b;
System.out.println("ICalculator - add " + a + " und " + b + "= " + ans);
return ans;
}
@Override
public int subtract(int a, int b) {
ans = a -b;
System.out.println("ICalculator - subtract " + a + " und " + b
+ "= " + ans);
return ans;
}
更简单的变体,你可以让你的方法无效并执行此操作:
@Override
public void add(int a, int b) {
System.out.println("ICalculator - add " + a + " und " + b "=" + (a + b);
}
以下是我测试你的方法是否有效的所有方法:
public class Test {
public static void main(String[] args) {
Calculator cal = new Calculator();
cal.add(5, 4);
cal.subtract(6, 0);
}
}
这应该让您有一个良好的开端来修复格式,并测试其他非常简单的方法,并对它们进行更正。