सबसे पहले, हमें अपनी वस्तुओं को डिजाइन करना चाहिए ताकि उनके पास राज्य और व्यवहार हों। हम निजी क्षेत्र बनाते हैं जो राज्य और सार्वजनिक तरीकों को पकड़ते हैं जो व्यवहार हैं।
उदाहरण के लिए, यदि हम किसी व्यक्ति वस्तु को डिज़ाइन करते हैं तो हम किसी व्यक्ति का पहला नाम, अंतिम नाम और पता संग्रहीत करने के लिए निजी फ़ील्ड बना सकते हैं। इन तीन क्षेत्रों के मूल्य वस्तु की स्थिति बनाने के लिए गठबंधन करते हैं। हम स्क्रीन पर पहले नाम, अंतिम नाम और पते के मूल्यों को प्रदर्शित करने के लिए डिस्प्लेपर्सडेलेट्स नामक एक विधि भी बना सकते हैं।
इसके बाद, हमें उन व्यवहारों को बनाना चाहिए जो वस्तु की स्थिति तक पहुंच और उसे संशोधित करते हैं। इसे तीन तरीकों से पूरा किया जा सकता है:
उदाहरण के लिए, हम व्यक्ति को दो कंस्ट्रक्टर विधियों के लिए ऑब्जेक्ट डिज़ाइन कर सकते हैं। पहला कोई मान नहीं लेता है और बस एक डिफ़ॉल्ट स्थिति (यानी, पहला नाम, अंतिम नाम और पता खाली स्ट्रिंग होगा) ऑब्जेक्ट सेट करता है। दूसरा नाम पहले मान के लिए प्रारंभिक मान निर्धारित करता है और अंतिम नाम इसके पास दिए गए मानों से। हम getFirstName, getLastName और getAddress नामक तीन एक्सेसर मेथड भी बना सकते हैं, जो कि केवल संबंधित निजी क्षेत्रों के मान लौटाते हैं। एक उत्परिवर्ती क्षेत्र बनाएँ, जिसे setAddress कहा जाता है, जो पता निजी फ़ील्ड का मान सेट करेगा।
अंत में, हम अपनी वस्तु के कार्यान्वयन विवरण को छिपाते हैं। जब तक हम राज्य के क्षेत्रों को निजी रखने के लिए चिपकते हैं और सार्वजनिक व्यवहार करते हैं, बाहरी दुनिया के लिए यह जानने का कोई तरीका नहीं है कि वस्तु आंतरिक रूप से कैसे काम करती है।