A programozásban a megváltoztathatatlan egy olyan objektum , amelynek állapota a létrehozás után nem változtatható meg.
A funkcionális programozásban a programban található összes ( tiszta nyelvek esetén) vagy majdnem minden (tiszta nyelvek esetén ) adat megváltoztathatatlan. Ez egyrészt jelentősen növeli a programok stabilitását a programok formai ellenőrzésének egyszerűsítésével . Másrészt ez megnehezíti számos probléma megoldását (amelyek közül a leggyakrabban a felhasználói felület megvalósításának a feladata , ami lényegében változtatható állapot), ami a nyelv típusú rendszereinek bonyolultabbá válását kényszeríti ki . például monádok vagy egyedi típusok .
Az objektumorientált programozás során a megváltoztathatatlan objektumok megfelelő tervezési mintán keresztül jönnek létre .
A megváltoztathatatlan objektumok például azért érdekesek, mert szálbiztosak .
Egy objektum lehet teljesen vagy részben megváltoztathatatlan. Például, ha a const direktívát egy osztály bármely tagjára alkalmazzuk a C++ nyelven , az objektum részben megváltoztathatatlan. Egyes esetekben egy objektumot megváltoztathatatlannak tekintünk az osztály felhasználója szempontjából, még akkor is, ha a belső mezői megváltoznak . Általában egy megváltoztathatatlan objektum megkapja az összes belső értéket az inicializálás során, vagy az értékeket több lépésben állítják be, de az objektum használata előtt.