大小受限堆栈的类不变量

问题描述

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

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

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

assert limitNotReached();

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

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

解决方法

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...