Em programação orientada a objetos e funcional, um objeto imutável é um objeto no qual seu estado não pode ser modificado após ser criado. Ele é um contraste com um objeto mutável, que pode ser modificado após sua criação. Um objeto pode ser ou inteiramente imutável ou possuir alguns atributos que podem ser declarados como imutáveis; por exemplo, usando o atributo de dado membro const na linguagem de programação C++. Em alguns casos, um objeto é considerado imutável mesmo que alguns atributos internos utilizados mudem mas o estado do objeto aparece como inalterado de um ponto de vista externo. Por exemplo, um objeto que utilize memoização para armazenar os resultados de computações custosas ainda poderia ser considerado como um objeto imutável.