Najprej moramo načrtovati svoje predmete tako, da bodo imeli stanje in vedenje. Ustvarjamo zasebna polja, ki vsebujejo državne in javne metode vedenja.
Na primer, če oblikujemo osebni objekt, lahko ustvarimo zasebna polja za shranjevanje njegovega imena, priimka in naslova. Vrednosti teh treh polj se združijo v stanje objekta. Lahko bi ustvarili tudi metodo, imenovano displayPersonDetails, da bi na zaslonu prikazali vrednosti imena, priimka in naslova.
Nato moramo narediti vedenja, ki dostopajo in spreminjajo stanje objekta. To je mogoče doseči na tri načine:
Na primer, lahko objekt osebe oblikujemo tako, da ima dve konstruktorski metodi. Prvi ne sprejme nobenih vrednosti in preprosto nastavi predmet, da ima privzeto stanje (tj. Ime, priimek in naslov bi bili prazni nizi). Druga določa začetne vrednosti za ime in priimek iz vrednosti, ki so mu bile prenesene. Izdelamo lahko tudi tri metode dostopa, imenovane getFirstName, getLastName in getAddress, ki preprosto vrnejo vrednosti ustreznih zasebnih polj. Ustvarite polje mutatorja, imenovano setAddress, ki bo nastavilo vrednost zasebnega polja naslova.
Nazadnje skrijemo podrobnosti izvedbe našega predmeta. Dokler se držimo zasebnih področij in vedenja javnosti, zunanji svet ne more vedeti, kako predmet deluje v notranjosti.