Java合同 - 客户使用&先决条件

时间:2018-06-19 03:07:37

标签: java client contract

以下的家庭作业问题让我(以及我提出的TA问题)感到困惑:

  

请注意power方法的requires子句,特别是   以下断言:    Integer.MIN_VALUE< = n ^(p)< = Integer.MAX_VALUE

     
      
  • 如果客户违反此前提条件会怎样?
  •   
  • 对root方法的合法调用是否可能违反power方法的requires子句?
  •   
  • 客户如何检查电源的前提条件?
  •   

这对我来说似乎是一个技巧问题,给定的幂方法返回n^(p)的结果,其中n是函数的唯一参数。

require子句是由客户端(一个调用函数)完成的,但是如果调用方法的整个点,客户端如何知道n^(p)是否在整数类型的范围内是计算n^(p)?在返回方法之前,所有客户端都知道n的值。 显然,如果客户端违反了这个前提条件,我们将获得溢出和回滚。

然后,查看第二个项目符号点,客户端确实可以传入一个参数n,该参数n在int类型的范围内,但是一旦被驱动就超过了该参数。但是,由于前提条件会被违反,这在技术上不是合法的电话吗?

最后,如果检查该前提条件是调用电源方法开始的整个点,客户端如何检查电源的前提条件?

0 个答案:

没有答案