वस्तुओं के बारे में बहुत अधिक जानकारी है। सबसे महत्वपूर्ण बात यह है कि मूल बातें मास्टर करना और सब कुछ आसानी से जगह में गिर जाता है।
यहाँ वस्तुओं के बारे में सोचने का एक तरीका है। प्रक्रियात्मक भाषाओं में डेटा संरचनाओं के बारे में सोचें। वे बिना व्यवहार के खेतों का एक समूह हैं। उन कार्यों के बारे में सोचें जो उन डेटा संरचनाओं को संकेत प्राप्त करते हैं और उत्तरार्द्ध में हेरफेर करते हैं। अब, उन्हें अलग करने के बजाय, संरचनाओं की परिभाषा के अंदर कार्यों को परिभाषित करें और मान लें कि कार्यों को आमतौर पर हेरफेर करने के लिए डेटा संरचना के लिए एक संकेतक प्राप्त होता है। उस सूचक को यह कहा जाता है। संक्षेप में, वस्तुओं के बारे में स्थिति (डेटा) और व्यवहार (विधियों - ओओपी में कार्यों के लिए फैंसी नाम) के संयोजन के रूप में सोचें।
यह परम आधारभूत है। तीन और अवधारणाएँ हैं जिनका आपको पूरी तरह से पालन करना चाहिए:
वंशानुक्रम - यह सभी कोड पुन: उपयोग के बारे में है।
एनकैप्सुलेशन - यह सभी इंटरफ़ेस से कार्यान्वयन को छिपाने के बारे में है। सीधे शब्दों में कहें, तो सब कुछ निजी होना चाहिए जब तक कि अन्यथा सिद्ध न हो।
बहुरूपता - यह संदर्भ चर के प्रकार से कोई फर्क नहीं पड़ता है, लेकिन व्यवहार (विधि) को जानने के लिए वास्तविक उदाहरण का प्रकार कहा जाता है। जावा इस अवधारणा को बहुत आसान नहीं बनाता है क्योंकि परिभाषा के अनुसार सब कुछ बहुरूपी है। .Net यह समझना आसान बनाता है क्योंकि आप तय करते हैं कि बहुरूपता क्या है और क्या नहीं है, इसलिए व्यवहार में अंतर को ध्यान में रखते हुए। यह वर्चुअल और ओवरराइड के संयोजन से हासिल किया गया है।
यदि इन अवधारणाओं को बहुत अच्छी तरह से समझा जाता है, तो आप ठीक हो जाएंगे।
एक अंतिम अंतिम टिप: आप सबसे अच्छी पुस्तकों का उल्लेख करते हैं। क्या आपने ब्रूस एकेल द्वारा " थिंकिंग इन जावा " पढ़ा है ? मैं इस पुस्तक को उन लोगों के लिए भी सुझाता हूं जो कि .Net में शुरुआत कर रहे हैं, क्योंकि OOP की अवधारणाएं स्पष्ट रूप से निर्धारित हैं।