Prvo moramo oblikovati naše objekte tako da imaju stanje i ponašanje. Stvaramo privatna polja koja drže državne i javne metode ponašanja.
Na primjer, ako dizajniramo objekt osobe, možemo stvoriti privatna polja za pohranjivanje osobe, prezime i adresu osobe. Vrijednosti ova tri polja kombiniraju se u stanje objekta. Mogli bismo stvoriti i metodu koja se zove displayPersonDetails za prikaz vrijednosti imena, prezimena i adrese na zaslonu.
Dalje, moramo izvršiti ponašanja koja pristupaju i mijenjaju stanje objekta. To se može postići na tri načina:
Na primjer, možemo konstruirati objekt osobe tako da ima dvije konstruktorske metode. Prva ne uzima nikakve vrijednosti i jednostavno postavlja objekt da ima zadano stanje (tj. Ime, prezime i adresa bili bi prazni nizovi). Drugi postavlja početne vrijednosti za ime i prezime od vrijednosti prenesenih na njega. Također možemo stvoriti tri metode pristupa pod nazivom getFirstName, getLastName i getAddress koje jednostavno vraćaju vrijednosti odgovarajućih privatnih polja. Izradite polje mutatora pod nazivom setAddress koje će postaviti vrijednost privatnog polja adrese.
Konačno, sakrivamo detalje implementacije našeg objekta. Sve dok se držimo privatnih polja i ponašanja u javnosti, vanjski svijet ne može znati kako objekt funkcionira iznutra.