Kapselointi on ohjelmistosuunnittelun periaate, jonka mukaan objekteihin pääsyn tulee olla riippumatonta niiden käytöstä. Tämän avulla voit luoda objekteja, joita voidaan käyttää riippumatta siitä, miten ne on luotu. Ohjelmointikontekstissa kapselointia voidaan ajatella tapana piilottaa objektin toteutustiedot sen käyttäjiltä.
Kapselointi ohjelmoinnissa tarkoittaa yhden objektin kaikkien ominaisuuksien ja menetelmien jakamista toisen objektin kanssa, jolloin luodaan objekti, jonka ominaisuudet ja käyttäytyminen eroavat näistä objekteista. Tämä periaate kannustaa objekteja olemaan itsenäisiä moduuleja, jotka yhdistävät tiedot ja käsittelymenettelyt, jotka toimivat vain objektin kuoressa.
Esimerkki
Tarkastellaan esimerkiksi tätä skenaariota: sinulla on luokka "Computer", jossa on attribuutteja ja menetelmiä, kuten prosessorin ominaisuudet (`processorPower`), RAM-muistia (`ramCapacity`), kiintolevyä (`hardDriveSize`) jne. Sinulla voi olla myös muita luokkia, kuten `