...
Enkapsulointi piilottaa toteutukseen liittyvät muuttujat ja metodit muiden luokkien näkyvistä. Enkapsuloitu luokka tarjoaa rajapinnan (interface), jolla luokkaa voidaan käyttää. Enkapsuloinnin avulla voidaan luokan toteutusta muuttaa ilman, että sitä käyttävät tahot joutuvat muuttamaan omaa koodiaan. Yleisesti kannattaa piilottaa kaikki sellainen, johon muiden ei tarvitse päästä "kiinni". Näin estetään vahingossa muuttamasta sellaisten muuttujien arvoja, joita on tarkoitus käyttä vain luokan sisäisesti.
Esimerkiksi CElain-luokka:
...
Yllä olevassa esimerkissä Tulosta()-funktio on ainoa julkinen funktio kyselyyn. Jatkossa saatetaan haluta muuttaa luokkaa siten, että siihen lisätään vaikka seuraavat ominaisuudet: väri, säkäkorkeus, elinalueet. Näille kirjoitetaan TulostaXXX()-funktiot. Koska CElain-luokka tarjoaa yhden julkisen Tulosta()-metodin, on helppo tehtävä lisätä nämä uudet ominaisuudet tulostettaviksi.