In
object-oriented and
functional programming, an
immutable object is an
object whose state cannot be modified after it is created. This is in contrast to a
mutable object, which can be modified after it is created. In some cases, an object is considered immutable even if some internally used attributes change but the object's state appears to be unchanging from an external point of view. For example, an object that uses
memoization to cache the results of expensive computations could still be considered an immutable object.