Objektisuuntautuneessa tietokoneohjelmoinnissa ja suunnittelussa luokan invariantti on sääntöjoukko, jonka avulla voidaan määrittää, onko objektin esiintymä olemassa kelvollisessa tilassa. Suunnittelun kannalta se on joukko rajoja, joiden välillä objektin sisältämien tietojen on katsottava olevan asianmukainen ja toimiva. Se voidaan määritellä suunnitteludokumentaatiossa tai lähdekoodikommentteissa tai joillakin ohjelmointikielillä voidaan toteuttaa suoraan toimivalla tietokonekoodilla. Ohjelma, joka käyttää koodattuja invariantteja ja väitteitä, voi lopettaa ohjelman suorittamisen tai aiheuttaa erilaisia virheitä, jos invariantit ehdot eivät täyty. Toisin kuin tavallinen virheentarkistus, luokan invariantteja käytetään yleensä vain sen varmistamiseksi, että luokan sisäinen toteutus toimii, eikä niitä yleensä luetella julkisessa dokumentaatiossa tai ohjelmointirajapinnoissa.
Hyvin perustasolta luokan invariantti on olennaisesti kokoelma luokan väitteitä. Väite, yksinkertaisesti sanottuna, on lausunto, joka tarkistaa osan luokan tilasta ja jonka on arvioitava oikeaksi, jotta ohjelman suorittaminen jatkuu. Yksi esimerkki väitteestä on lause, joka varmistaa, että tietty kokonaisluku on aina välillä 1 ja 10. Kun käytetään luokan invarianttia, väitteet arvioidaan objektin hallussa olevien tietojen kaikkien asiaankuuluvien osien osalta, mikä vahvistaa olennaisesti sen, että kaikki objektit ovat määritetyillä alueilla.
Monissa tapauksissa luokan invariantin käyttäminen muistuttaa vahvasti vakiovirheentarkistusta, jossa muuttujat mitataan sen varmistamiseksi, että ne ovat käyttökelpoisten rajojen sisällä tai eivät ole tyhjiä. Ero luokan invarianttien ja tavanomaisten virheiden tarkistamisen välillä on kuitenkin se, että invariantteja ja väitteitä käytetään pääasiassa sellaisten virheiden sieppaamiseen, joita ei pitäisi tapahtua, ellei koodissa ole sisäistä puutetta. Toinen ero on se, että vakiovirheiden tarkistamiseen liittyy yleensä palautumista ja muutoksia ohjelman ohjausvirtaan, kun taas muuttumattoman vian seurauksena pitäisi olla ohjelman päättäminen. Syy useimpiin ohjelmiin päättyy, kun luokan invarianttitarkistus epäonnistuu, koska objekti on vaarantuneessa tilassa eikä pysty suunnittelun kannalta täyttämään sen suunnittelua koskevan sopimuksen noudattamisen edellyttämiä edellytyksiä ja jälkiehtoja.
Yksi luokan invariantin ominaisuuksista olio -ohjelmointikielissä, joissa ne on implisiittisesti määritelty, on se, että invariantti on mekanismi, jonka kaikki alaluokat perivät. Tämä estää alaluokan ohittamasta kaikki invarianttitarkastukset, jotka suoritetaan pääluokassa. Viime kädessä tämä tarkoittaa sitä, että alaluokka ei pysty rikkomaan superluokan vahvistamaa suunnittelusopimusta, mikä voi aiheuttaa arvaamattomia tuloksia tai vaikeasti löydettäviä ohjelmavirheitä.