什么是方法合同&方法规格?

时间:2015-04-07 01:32:17

标签: methods

我知道这是编码,但我找不到任何在线,甚至远程帮助我理解它。

可能是形式?我的教科书没有谈论它,我的讲座对它没有多大帮助。

1 个答案:

答案 0 :(得分:2)

方法规范:当然它指的是方法的名称可见性参数及其类型和方向(输入/输出),< strong>返回值以及可能的异常抛出

方法合约:该方法执行时,预期行为前置条件后置条件

示例:Java中的方法Object.equals具有此规范

public boolean equals(Object obj)

...以及此合同,如其公开文档中所述:

  

指示某个其他对象是否“等于”此对象。

     

equals方法在非null上实现等价关系   对象引用:

     

它是自反的:对于任何非空引用值x,x.equals(x)应该返回true。   它是对称的:对于任何非空引用值x和y,当且仅当y.equals(x)返回时,x.equals(y)才应返回true   真正。   它是传递性的:对于任何非空引用值x,y和z,如果x.equals(y)返回true而y.equals(z)返回true,则   x.equals(z)应该返回true。   它是一致的:对于任何非空引用值x和y,x.equals(y)的多次调用始终返回true或   如果没有平等使用的信息,则始终返回false   对象的比较被修改。       对于任何非空引用值x,x.equals(null)应返回false。

     

类Object的equals方法实现最具辨别力   对象可能的等价关系;也就是说,对于任何非null   引用值x和y,当且仅当x时,此方法返回true   和y引用相同的对象(x == y的值为true)。

     

请注意,通常需要覆盖hashCode方法   每当重写此方法时,都要保持一般   hashCode方法的契约,它声明了相等的对象必须   有相同的哈希码。