Nesneye yönelik bilgisayar programlama ve tasarımında, bir sınıf değişmezliği, bir nesne örneğinin geçerli bir durumda olup olmadığını tanımlamak için kullanılabilecek bir kurallar kümesidir. Tasarım açısından bakıldığında, bir sınıf değişmezliği, bir nesnenin içindeki verilerin uygun ve işlevsel bir durumda göz önünde bulundurulması gereken bir sınır kümesidir. Bir tasarım değişkeni tasarım dokümantasyonunda veya kaynak kod açıklamalarında tanımlanabilir veya bazı programlama dillerinde doğrudan işlem yapılabilir bilgisayar kodunda uygulanabilir. Kodlanmış değişmezleri ve iddiaları kullanan bir program, değişmeyen koşullar karşılanmadığında programın yürütülmesini durdurmasına veya çeşitli hatalar atmasına neden olabilir. Standart hata kontrolünden farklı olarak, sınıf değişmezleri genellikle yalnızca bir sınıfın iç uygulamasının çalışmasını sağlamak amacıyla kullanılır ve genellikle kamuya açık belgelerde veya programlama arayüzlerinde listelenmez.
Çok temel bir seviyeden, bir sınıf değişmezliği temel olarak bir sınıf için bir iddialar topluluğudur. Yine basit bir ifadeyle, iddia, sınıf devletinin bir bölümünü kontrol eden ve program yürütmenin devam etmesi için doğru olarak değerlendirilmesi gereken bir ifadedir. Bir iddia örneği, verilen bir tamsayı her zaman 1 ile 10 arasında olmasını sağlayan bir ifadedir. Bir sınıf değişkeni kullanıldığında, iddialar, nesne tarafından tutulan verilerin tüm ilgili bölümleri için değerlendirilir ve esasen tüm verilerin nesne tanımlanan aralıklar içinde.
Birçok durumda, değişmez bir sınıf kullanmak, değişkenlerin kullanılabilir sınırlar içinde olduklarından veya boş olmadıklarından emin olmak için ölçüldüğü standart hata denetimine çok benzer. Bununla birlikte, sınıf değişmezlerini kullanma ve standart hata denetimi arasındaki fark, değişmezlerin ve iddiaların ağırlıklı olarak, kodda içsel bir kusur olmadığı sürece oluşmaması gereken hataları yakalamak için kullanılmasıdır. Diğer bir fark, standart hata kontrolünün geri kazanımı ve program kontrol akışındaki değişiklikleri içerme eğiliminde olmasıdır, oysa değişmeyen bir hatanın sonucunun program sonlandırılması olması gerekir. Programların çoğunun bir sınıf değişmeyen kontrolü başarısız olduğunda sona ermesinin nedeni, nesnenin tehlikeye atılmış bir durumda olması ve tasarım görünümünden, tasarım sözleşmesine uymak için gerekli ön koşulları ve post-koşullarını yerine getirememesidir.
Bir sınıfın değişmez olarak tanımlandıkları nesne yönelimli programlama dillerindeki özelliklerinden biri de değişmezliğin herhangi bir alt sınıfın miras aldığı bir mekanizma olmasıdır. Bu, bir alt sınıfın üst sınıfta gerçekleştirilen değişmeyen kontrolleri geçersiz kılmasını önler. Sonuçta bu, bir alt sınıfın üst sınıf tarafından oluşturulan tasarım sözleşmesini kıramadığı, bu da öngörülemeyen sonuçlara veya bulunması zor program hatalarına neden olabileceği anlamına gelir.


