यह कार्यान्वयन बनाम निहितार्थ की बात है । सी + + या जावा के दृश्य हिट होने से पहले संपत्तियां ओओपी में थीं (वे वहां थे, किनारों के आसपास कुछ खुरदरापन के साथ, सिमाला में, और वे स्मॉलटाक के लिए मौलिक हैं)। गुणों के साथ एंटिटी वैचारिक रूप से कोड से जुड़े मूल्यों से अलग हैं । कुछ भाषा सम्मेलनों में उपसर्ग और सेट उपसर्ग केवल पानी को खराब करने के लिए कार्य करते हैं; वे आपको खेतों और संपत्तियों के बीच अंतर के बारे में अवगत कराते हैं, यह मानते हुए कि खेतों को सीधे प्राप्त / सेट किए बिना सीधे तरीके से पहुँचा जा सकता है जो भाषा के लिए मुहावरेदार है, और यह लीक है।
ओओपी का पूरा बिंदु चीजों का इलाज करना है जैसे कि वे "वास्तविक" दुनिया में इकाइयां थीं, न कि केवल इस कोड के साथ संरचनाएं। एक अन्य प्रोग्रामर को चीजों को लागू करने के तरीके के बारे में बहुत कम, बहुत कम जानना चाहिए, और उन सभी से संबंधित नहीं होना चाहिए जो विभिन्न मूल्यों के लिए उन्हें प्राप्त करने की अनुमति है और / या सेट वास्तविक हैं और जो आभासी हैं। यदि आप मेरा एक वेक्टर चलाते हैं, तो आपको यह जानने की आवश्यकता नहीं है कि मैं कोण और परिमाण को संग्रहीत कर रहा हूं या वेक्टर वस्तु के लिए वास्तविक और काल्पनिक घटक। यदि मैं अपने पुस्तकालय के V2.0 में प्रतिनिधित्व को बदल देता हूं, तो यह आपके कोड को बिल्कुल भी प्रभावित नहीं करना चाहिए (हालांकि आप शांत सुविधाओं का लाभ उठाने की इच्छा कर सकते हैं)। इसी तरह, वहाँ एक इकाई है जो एक इकाई के लिए बाहरी डेटा पर निर्भर हो सकता है गुण हैं, लेकिन जो एक शाब्दिक दृष्टिकोण से निस्संदेह गुण हैं। आप लोगों से पूछते हैं कि "आप कितने साल के हैं", "कृपया उस गणना को करें जो आपकी आयु को मेरे सामने प्रकट करेगी", हालांकि आप जानते हैं कि उस "वस्तु" के लिए उपलब्ध डेटा जन्म तिथि (एक निजी अपरिवर्तनीय सदस्य) और आज का है दिनांक (एक सार्वजनिक, ऑटो-इन्क्रिमेंटिंग पर्यावरण संपत्ति, समय क्षेत्र पर निर्भर, दिन की बचत समय और अंतर्राष्ट्रीय तिथि रेखा)। आयु एक संपत्ति है, एक विधि नहीं है, भले ही इसे प्राप्त करने के लिए कुछ गणना हो और (खिलौना कंप्यूटर के अलावा कृत्रिम रूप से सीमित जीवनकाल वाली चीजों के प्रतिनिधित्व को छोड़कर) को एक क्षेत्र के रूप में संग्रहीत नहीं किया जा सकता है। हालांकि आप जानते हैं कि उस "ऑब्जेक्ट" को उपलब्ध डेटा जन्म तिथि (एक निजी अपरिवर्तनीय सदस्य) और आज की तारीख (एक सार्वजनिक, ऑटो-इंक्रीमेंटिंग पर्यावरण संपत्ति, समय क्षेत्र, दिन के उजाले की बचत समय और अंतर्राष्ट्रीय तिथि रेखा पर निर्भर है) )। आयु एक संपत्ति है, एक विधि नहीं है, भले ही इसे प्राप्त करने के लिए कुछ गणना हो और (खिलौना कंप्यूटर के अलावा कृत्रिम रूप से सीमित जीवनकाल वाली चीजों के प्रतिनिधित्व को छोड़कर) को एक क्षेत्र के रूप में संग्रहीत नहीं किया जा सकता है। हालांकि आप जानते हैं कि उस "ऑब्जेक्ट" को उपलब्ध डेटा जन्म तिथि (एक निजी अपरिवर्तनीय सदस्य) और आज की तारीख (एक सार्वजनिक, ऑटो-इंक्रीमेंटिंग पर्यावरण संपत्ति, समय क्षेत्र, दिन के उजाले की बचत समय और अंतर्राष्ट्रीय तिथि रेखा पर निर्भर है) )। आयु एक संपत्ति है, एक विधि नहीं है, भले ही इसे प्राप्त करने के लिए कुछ गणना हो और (खिलौना कंप्यूटर के अलावा कृत्रिम रूप से सीमित जीवनकाल वाली चीजों के प्रतिनिधित्व को छोड़कर) को एक क्षेत्र के रूप में संग्रहीत नहीं किया जा सकता है।
खेतों और विधियों के कमीने बच्चे के रूप में गुणों के बारे में सोचने के बजाय, यह एक विशेष प्रकार की संपत्ति के रूप में तरीकों की बात करने के लिए अधिक संतोषजनक है - चीजें जो आपकी संस्थाएं उन चीजों के बजाय कर सकती हैं जो वे हैं। अन्यथा आप वैचारिक रूप से वस्तु / संस्थाओं के साथ व्यवहार नहीं कर रहे हैं, आप उन डेटा संग्रहों के साथ काम कर रहे हैं जो कोड से जुड़े होते हैं। Implementaions समान हो सकता है, लेकिन प्रभाव अलग हैं।
हालांकि, यह कहना बेकार होगा कि यह अमूर्त लागत पर आता है। यदि एक वर्ग का उपयोग करने वाला प्रोग्रामर यह नहीं बता सकता है कि क्या वह डेटा एक्सेस कर रहा है क्योंकि यह संग्रहीत है या मूल्यों को प्राप्त करने / स्थापित करने की आवश्यकता है, तो एक स्तर होगा जिस पर भाषा भी आवश्यक रूप से अनिश्चित है (और इसलिए हो सकता है) आवश्यकता है कि सब कुछ एक्सेसर्स / चयनकर्ताओं और मूल्यों के बीच मध्यवर्ती करने के लिए कोड की आवश्यकता होती है)। "कोड के साथ संरचनाओं" के साथ वैचारिक रूप से कुछ भी गलत नहीं है - वे निश्चित रूप से बहुत अधिक कुशल हो सकते हैं - लेकिन वे सभी जगह कार्यान्वयन को लीक करते हैं, और यह उन चीजों में से एक है जिन्हें ओओपी को खत्म करना है।