首页 > 解决方案 > 大小受限堆栈的类不变量

问题描述

我目前正在研究数据结构和面向对象的合同,尤其是在 Java 方面。

我想知道大小受限堆栈的类不变量可能是什么。如果我正确理解了不变量的概念,那么这个不变量在整个程序执行过程中都必须为真,以证明程序的正确性,对吧?

例如,假设这个大小受限的堆栈包含数据类型 Person 的元素。我现在对不变量的想法是:

assert limitNotReached();

如果尚未达到堆栈的最大大小,limitNotReached() 返回 true,否则返回 false。

这是一个很好的不变量还是有人有更好的改进想法/建议?

标签: javaclassinvariants

解决方案


数据结构是展示类不变量概念的一个非常糟糕的选择。它是一种数据结构,它包含事物,但它本身并不是“事物”,因此没有什么特别的不变量很有意义。

一个更好的例子是一个 Car 类,它有一个不变的条件,它的燃料水平永远不会是负数。


推荐阅读