Java 大小受限堆栈的类不变量

Java 大小受限堆栈的类不变量,java,class,invariants,Java,Class,Invariants,我目前正在研究数据结构和面向对象的契约,特别是Java 我想知道大小受限堆栈的类不变量是什么。如果我正确理解了不变量的概念,那么这个不变量必须在程序的整个执行过程中都是真的,以证明程序的正确性,对吗 例如,让我们假设这个大小受限的堆栈包含数据类型Person的元素。我现在对不变量的想法是: assert limitNotReached(); 如果尚未达到堆栈的最大大小,则limitnotreach()返回true,否则返回false 这是一个好的不变量,还是有人有更好的改进想法/建议?用数据结

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

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

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

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


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

用数据结构来演示类不变量的概念是一个非常糟糕的选择。它是一个数据结构,它保存东西,但本身不是一个“东西”,所以没有什么特别的不变量是有意义的

一个更好的例子是,一个汽车类别有一个不变的条件,即其燃油油位永远不能为负。

尺寸有限的堆栈唯一(尺寸相关)不变的条件是其尺寸不超过限制。(我想是非负的)。