Najprv musíme navrhnúť svoje objekty tak, aby mali stav a správanie. Vytvárame súkromné polia, ktoré držia štátne a verejné metódy správania.
Ak napríklad navrhneme objekt osoby, môžeme vytvoriť súkromné polia na ukladanie krstného mena, priezviska a adresy osoby. Hodnoty týchto troch polí sa spoja a vytvoria stav objektu. Mohli by sme tiež vytvoriť metódu s názvom displayPersonDetails na zobrazenie hodnôt krstného mena, priezviska a adresy na obrazovku.
Ďalej musíme urobiť správanie, ktoré sprístupní a zmení stav objektu. To možno dosiahnuť tromi spôsobmi:
Napríklad môžeme objekt osoby navrhnúť tak, aby mal dve metódy konštruktora. Prvý z nich neberie žiadne hodnoty a jednoducho nastaví objekt na predvolený stav (t. J. Krstné meno, priezvisko a adresa budú prázdne reťazce). Druhý nastavuje počiatočné hodnoty krstného mena a priezviska z hodnôt, ktoré mu boli odovzdané. Môžeme tiež vytvoriť tri prístupové metódy s názvom getFirstName, getLastName a getAddress, ktoré jednoducho vracajú hodnoty zodpovedajúcich súkromných polí. Vytvorte pole mutátora s názvom setAddress, ktoré nastaví hodnotu súkromného poľa adresy.
Nakoniec skryjeme podrobnosti implementácie nášho objektu. Pokiaľ sa budeme držať súkromných polí štátu a správania verejnosti, neexistuje žiadny spôsob, ako by vonkajší svet vedel, ako objekt interne funguje.