class invariant
A rule about an object's fields that holds whenever none of its methods is running.
A class invariant is a condition on an object's state established by every constructor and preserved by every public method; private fields make it enforceable.