【发布时间】:2016-11-05 18:43:13
【问题描述】:
我必须基于这个接口用 Java 创建一个计算器。
public interface CalculatorIF {
int add(int x, int y);
int sub(int x, int y);
int mult(int x, int y);
//double div(int x, int y);
//int sqrt(int x);
}
但是对于每个方法,我都需要前置条件。 我真的需要关于前置条件的帮助,因为我什至无法想象一个有意义且尚未由 Java 处理的单个条件。
编辑:除法和 sqrt 对我来说很清楚,但我需要一些关于 add、sub 和 mult 的想法。
【问题讨论】:
-
你说的java处理是什么意思?
-
我的意思是对于我的添加方法,我只能想象作为前提条件 x 或 y 大于 Integer.MAX_VALUE 但这已经由 java 处理。
-
sqrt 的前提条件是非负数?或者对于 div 是
y!=0?也许我只是弄错了,但可能就是这样 -
除以零?负数的平方根? Java 将在除以零的情况下抛出 ArithmeticException 并返回 NaN,在这种情况下,您应该在 sqrt 方法中检查 int x 是否为负数,如果是,则抛出适当的异常...
-
如果没有什么要检查的,那就没有什么要检查的
标签: java design-by-contract preconditions