अमूर्तता और इनकैप्सुलेशन दोनों ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) की मूल अवधारणाएं हैं जो वास्तविक दुनिया की वस्तुओं को कार्यक्रमों और कोडों में एम्बेड करने की अनुमति देती हैं। जब दोनों एक साथ आते हैं, तो वे एक-दूसरे से बहुत अलग होते हैं। यद्यपि प्रत्येक विधि को संक्षिप्त किया गया है, लेकिन यह अमूर्त है। सीधे शब्दों में कहें, जब आप किसी व्यक्ति को बनाने के लिए विभिन्न चीजों को जोड़ते हैं, तो आप वास्तव में अवधारणा बनाते हैं - अमूर्त। यद्यपि दोनों तकनीकी रूप से अलग हैं, वे शाब्दिक रूप से कोई नहीं हैं। यह लगभग सच है कि प्रत्येक एनकैप्सुलेशन सार है क्योंकि वे दोनों छिपाते हैं, लेकिन अंतर समान हैं।

निष्कर्ष क्या है?

अमूर्तता OOP की एक प्रमुख अवधारणा है जो केवल ऑब्जेक्ट-विशिष्ट जानकारी पर केंद्रित है और सभी महत्वहीन जानकारी को अस्पष्ट करती है जो सामान्य या विशेष नहीं हो सकती है। यह विवरणों को छिपाता है और जटिलता को कम करने और दक्षता बढ़ाने के लिए महत्वपूर्ण पहलुओं पर जोर देता है। मूल रूप से, अमूर्तता जटिलता के प्रबंधन के लिए एक सॉफ्टवेयर उपकरण है। अमूर्त विचारों पर केंद्रित है, घटनाओं पर नहीं। यह उपयोगकर्ताओं को कार्यक्षमता प्रदान करके डिज़ाइन-स्तरीय डेटा छुपाता है। परिणामी वस्तु को अमूर्त भी कहा जा सकता है। प्रोग्रामर यह सुनिश्चित करता है कि नामित वस्तु में सभी आवश्यक चीजें हैं और यह तुच्छ नहीं है।

वास्तविक अमूर्तता का उदाहरण लें। इस मामले में, उस वाहन की स्थिति पर विचार करें जो आपका वाहन है। मैकेनिक आपकी कार को ठीक करने की कोशिश करेगा या मान लें कि आपकी कार का एक निश्चित हिस्सा है। यहां आप उपयोगकर्ता हैं और आप अपनी मशीन की सुविधाओं का उपयोग नहीं करना चाहते हैं या इसका कौन सा हिस्सा वास्तव में टूट गया है। आप वास्तव में उस सामान की परवाह नहीं करते हैं; आप बस विवरण के बारे में चिंता किए बिना अपनी कार को अपनी मूल स्थिति में वापस चाहते हैं। तो आपने वास्तव में मैकेनिक को बताया है कि आप पूर्ति भाग को अलग करके क्या करना चाहते हैं। यह सार है। आपने अपनी कार को ठीक करने के लिए सबसे महत्वपूर्ण बात पर ध्यान केंद्रित किया, न कि आपकी सुविधाओं को।

अमूर्तता और एनकैप्सुलेशन के बीच अंतर

एनकैप्सुलेशन क्या है?

एनकैप्सुलेशन एक अन्य ओओपी अवधारणा है जो डेटा और कार्यों को एक हिस्से में जोड़ती है और कुछ भागों तक पहुंच को सीमित करती है। यह OOP की मूल अवधारणाओं में से एक है जो डेटा और सूचना को एक इकाई में जोड़ती है। तकनीकी दृष्टिकोण से, एनकैप्सुलेशन में उन विशेषताओं को छिपाना शामिल होता है जो बाहरी पहुंच से विशेषताओं की रक्षा करते हैं ताकि कार्यक्रम के एक हिस्से में परिवर्तन अन्य घटकों को प्रभावित न करें। इसके विपरीत, डेटा को अधिक पारदर्शी बनाकर, आपको दुरुपयोग का खतरा है। यह बाहरी दुनिया से डेटा की रक्षा करके बुनियादी अखंडता प्रदान करता है। सीधे शब्दों में कहें, यह बाहरी दुनिया से अतिरिक्त विवरण छिपाता है।

एक ब्लूटूथ माउस का उदाहरण लें। आपको बस यह जानना होगा कि सेंसर किस तरह का माउस है, चाहे वह वायरलेस हो या नहीं, जैसे कि डिवाइस कैसे काम करता है, बिना कार्यान्वयन के विवरण के बारे में चिंता किए। प्रत्येक विवरण माउस की विशेषता बताता है, लेकिन विवरण के बावजूद, यह केवल माउस है। आपको केवल माउस का उपयोग करने के लिए इंटरफ़ेस की आवश्यकता है, इस मामले में माउस पॉइंटर। यह एक कैप्सूल है।

अमूर्तता और एनकैप्सुलेशन के बीच अंतर

यद्यपि दोनों ओओपी से संबंधित मूलभूत अवधारणाएं हैं और वे तकनीकी रूप से परस्पर जुड़े हुए हैं, उनके कई अंतर हैं।

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

तुलना तालिका और सार

निष्कर्ष

हालांकि दोनों डेटा छुपा से संबंधित ओओपी अवधारणाएं हैं, वे एक दूसरे से बहुत अलग हैं। अमूर्त भी छिपाव पर लागू होता है, जैसे कि एनकैप्सुलेशन, लेकिन पूर्व जटिलता को छुपाता है जबकि दूसरा इसे नियंत्रित करता है और इसमें मौजूद जानकारी संग्रहीत करता है। अमूर्तता आवेदन की जटिलता को कम करने के लिए तुच्छ विवरण छिपाकर केवल आवश्यक सुविधाओं को प्रदर्शित करने की अवधारणा है। बदले में, एनकैप्सुलेशन का अर्थ है कि अवांछित पहुंच से डेटा की रक्षा के लिए कार्यक्रम के सभी आंतरिक यांत्रिकी को छिपाना। यह अन्य घटकों तक पहुंच को सीमित करता है और डेटा और डेटा को एक घटक में जोड़ता है।

प्रतिक्रिया दें संदर्भ

  • Buyya। जावा के साथ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग: मूल बातें और अनुप्रयोग। एनवाईसी: टाटा मैकग्रा-हिल एजुकेशन, 2009. प्रिंट
  • मैककोनेल, स्टीव। कोड पूर्ण (दूसरा संस्करण)। लंदन: पियर्सन एजुकेशन, 2004. प्रिंट
  • माइकलसन, क्लॉस। सी # प्राइमर प्लस। इंडियानापोलिस: सैम्स प्रकाशन, 2002. प्रिंट
  • "इमेज क्रेडिट: https://stackoverflow.com/questions/742341/difference-between-abstraction-and-encapsulation"