encapsulation c
C ++ में एनकैप्सुलेशन का पूरा अवलोकन:
हमने अपने पिछले ट्यूटोरियल में विस्तार से अमूर्त चर्चा की। अमूर्तता, जैसा कि हम जानते हैं, उपयोगकर्ता से कार्यान्वयन विवरण छिपाता है और केवल उस इंटरफ़ेस को उजागर करता है जो उपयोगकर्ता द्वारा आवश्यक है।
इस ट्यूटोरियल में, हम OOP की एक और महत्वपूर्ण विशेषता यानी एनकैप्सुलेशन पर चर्चा करेंगे। अमूर्तता और एनकैप्सुलेशन हाथ से चलते हैं। वास्तव में, हम कह सकते हैं कि इनकैप्सुलेटेड कोड हमें अमूर्तन में मदद करता है। दूसरे शब्दों में, एनकैप्सुलेशन और एब्स्ट्रक्शन एक साथ मिलकर बंधे होते हैं।
=> विशेषज्ञों से पूरा सी ++ कोर्स के लिए यहां जाएं।
इस प्रकार, हम इन दोनों अवधारणाओं पर एक साथ चर्चा कर सकते हैं क्योंकि इनकैप्सुलेशन और अमूर्त के बीच एक बहुत पतली रेखा है।
आप क्या सीखेंगे:
- एनकैप्सुलेशन क्या है?
- एनकैप्सुलेशन का कार्यान्वयन
- एनकैप्सुलेशन और एब्स्ट्रक्शन के बीच अंतर
- निष्कर्ष
- अनुशंसित पाठ
एनकैप्सुलेशन क्या है?
डेटा एनकैप्सुलेशन, डेटा को एक साथ एक ही इकाई में संचालित करने वाले डेटा और फ़ंक्शंस या विधियों को एक साथ बाइंड करने की प्रक्रिया को संदर्भित करता है ताकि यह बाहरी हस्तक्षेप और दुरुपयोग से सुरक्षित रहे।
यह एक महत्वपूर्ण वस्तु-उन्मुख प्रोग्रामिंग अवधारणा है और यह अभी तक एक और OOP अवधारणा के रूप में जाना जाता है ' डेटा छिपाना ”। एनकैप्सुलेशन डेटा और उसके सदस्यों को छुपाता है जबकि अमूर्त केवल बाहरी दुनिया के लिए आवश्यक विवरण या इंटरफेस को उजागर करता है।
एक तरह से, अमूर्तता बाहरी दुनिया के लिए छिपे हुए डेटा का 'अमूर्त दृश्य' प्रस्तुत करती है। इस प्रकार हमने पहले से ही एक बयान दिया है कि एनकैप्सुलेशन और एब्स्ट्रैक्शन हाथ से चलते हैं।
C ++ में एक वर्ग वह है जहां हम डेटा सदस्यों और इन डेटा सदस्यों के साथ-साथ निजी, सार्वजनिक और संरक्षित प्रतिनिधित्व जैसे एक्सेस स्पेसर्स के साथ काम करने वाले फ़ंक्शन को बंडल करते हैं। हमने पहले से ही कक्षाओं और वस्तुओं पर अपने पुराने ट्यूटोरियल में एक्सेस स्पेसियर्स पर चर्चा की है।
विंडोज़ में एक एपीके फ़ाइल खोलें
हम यह भी जानते हैं कि डिफ़ॉल्ट रूप से वर्ग के सदस्य निजी होते हैं। जब हम कक्षा के सदस्यों को निजी घोषित करते हैं और कक्षा के सदस्यों को सार्वजनिक करने के तरीकों के रूप में, हम वास्तव में इनकैप्सुलेशन को लागू कर रहे हैं। उसी समय, हम सार्वजनिक तरीकों के रूप में बाहरी दुनिया को डेटा का एक सार दृश्य प्रदान करते हैं।
एनकैप्सुलेशन का कार्यान्वयन
C ++ में एनकैप्सुलेशन को एक वर्ग के रूप में लागू किया जाता है जो डेटा को बंडल करता है और इस डेटा पर काम करने वाले फ़ंक्शन को एक साथ करता है। अधिकतर डेटा को निजी घोषित किया जाता है ताकि वह कक्षा के बाहर सुलभ न हो। विधियों या कार्यों को सार्वजनिक घोषित किया जाता है और उन्हें कक्षा की वस्तु का उपयोग करके एक्सेस किया जा सकता है।
हालाँकि, हम सीधे निजी सदस्यों तक नहीं पहुँच सकते हैं और इसे डेटा छिपाना कहते हैं। जब यह किया जाता है, तो डेटा सुरक्षित हो जाता है और केवल उस विशेष वर्ग के कार्यों तक पहुँचा जा सकता है जिसमें डेटा घोषित किया जाता है।
// Example program #include #include using namespace std; //example class to demonstrate encapsulation class sampleData{ int num; char ch; public: //getter methods to read data values int getInt() const{ return num; } char getCh() const{ return ch; } //setter methods to set data values void setInt(int num) { this->num = num; } void setCh(char ch){ this->ch = ch; } }; int main() { sampleData s; s.setInt(100); s.setCh('Z'); cout<<'num = '< आउटपुट:
संख्या = १००
ch = Z

ऊपर के कार्यक्रम में हमने दो सदस्य चर को एक कक्षा में गेट्टर और सेटर विधियों के साथ जोड़ दिया है। और यह एनकैप्सुलेशन का एक उदाहरण है।
हमने दो वेरिएबल्स यानी संख्या और ch को निजी चर के रूप में घोषित किया है ताकि वे बाहरी दुनिया के लिए सुलभ न हों। वे केवल उन कार्यों के लिए सुलभ हैं जिन्हें हमने सार्वजनिक घोषित किया है। इस प्रकार हमारे पास एक वर्ग में निजी चर के रूप में डेटा सदस्य छिपे हुए हैं।
आइए C ++ में एनकैप्सुलेशन को बेहतर ढंग से समझने के लिए एक और उदाहरण लेते हैं।
#include #include using namespace std; //Accounts class: includes salary info for a particular employee class Accounts{ int empId; double salary, basic, allowances, deductions; public: Accounts(int empId):empId(empId){} //read salary info void readEmployeeInfo(int empId){ cout<<'Enter basic for the employee'< basic; cout<>allowances; cout<>deductions; } //calculate salary double calculateSalary(){ salary = basic+ allowances - deductions; return salary; } //display details void display(){ salary = calculateSalary(); cout<<'Employee: '< आउटपुट:
कर्मचारी के लिए बुनियादी दर्ज करें 1: 10000
भत्ते: 4324.43
कटौती: 1000
कर्मचारी: १
वेतन: 13324.4

यह अभी तक एनकैप्सुलेशन का एक और उदाहरण है। जैसा कि ऊपर दिखाया गया है, हमारे पास एक वर्ग खाता है जो खाता डेटा को बंडल करता है और वे सभी कार्य जो इस डेटा पर एकल वर्ग खातों में संचालित होते हैं। मुख्य फ़ंक्शन में, हम वांछित जानकारी प्राप्त करने के लिए इस वर्ग और पहुंच कार्यों का एक ऑब्जेक्ट बना सकते हैं।
अब अगर कुछ अन्य वर्गों का कहना है कि कर्मचारी विवरण खातों के डेटा का उपयोग करना चाहते हैं, तो वह इसे सीधे नहीं कर सकता है। इसके लिए वर्ग खातों की एक वस्तु बनाने की आवश्यकता होगी और वे केवल उन्हीं वस्तुओं तक पहुंच सकेंगे जो सार्वजनिक हैं। इस तरह, एनकैप्सुलेशन का उपयोग करके हम डेटा के अभिगम नियंत्रण की गारंटी देते हैं और डेटा की अखंडता को भी सुनिश्चित करते हैं।
एनकैप्सुलेशन और एब्स्ट्रक्शन के बीच अंतर
एब्स्ट्रेक्शन और एनकैप्सुलेशन बारीकी से एक साथ बंधे होते हैं। एक साथ उस डेटा पर काम करने वाले डेटा और विधियों को बंडल करके एब्स्ट्रक्शन में एनकैप्सुलेशन एड्स।
कैप्सूलीकरण मतिहीनता डेटा छुपाता है कार्यान्वयन छिपाता है बंडलों डेटा और तरीकों को एक साथ उपयोगकर्ता को एक सार इंटरफेस प्रदान करता है जो केवल आवश्यक है अमूर्तता में एड्स कोड के पुन: उपयोग और सुरक्षा में सहायता। डेटा सदस्यों और विधियों तक पहुँच को परिभाषित करने वाले एक्सेस स्पेसियर्स के साथ एक वर्ग के रूप में लागू किया गया एक अमूर्त वर्ग के रूप में लागू किया और इंटरफेस कि तत्काल नहीं किया जा सकता है।
निष्कर्ष
एनकैप्सुलेशन OOP की सबसे महत्वपूर्ण विशेषताओं में से एक है क्योंकि यह हमें डेटा को छिपाने का एक तरीका प्रदान करता है। यह बदले में, डेटा को अधिक सुरक्षित बनाता है और इसे दुर्भावनापूर्ण उपयोग से बचाता है।
एब्सट्रैक्शन में एनकैप्सुलेशन एड्स, जिससे हम एंड-यूज़र के लिए केवल आवश्यक इंटरफ़ेस को उजागर कर सकते हैं और तदनुसार अन्य विवरण छिपा सकते हैं। इस ट्यूटोरियल में, हमने C ++ में अमूर्तता और एनकैप्सुलेशन अवधारणाओं पर एक नज़र डाली।
हमारे आगामी ट्यूटोरियल में, हम उदाहरण के साथ C ++ में वंशानुक्रम पर चर्चा करेंगे।
=> एक्सक्लूसिव C ++ ट्रेनिंग ट्यूटोरियल सीरीज़ के लिए यहां जाएं।
अनुशंसित पाठ
- C ++ में डेटा एब्स्ट्रक्शन
- C ++ डेटा प्रकार
- सर्वश्रेष्ठ मुफ्त सी # ट्यूटोरियल श्रृंखला: शुरुआती के लिए अंतिम सी # गाइड
- मुफ़्त के लिए सी ++ प्रोग्रामिंग जानने के लिए 70+ बेस्ट सी ++ ट्यूटोरियल
- पुस्तकालय कार्य C ++ में
- C ++ में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग
- C ++ में डेटा स्ट्रक्चर्स का परिचय
- प्रारंभिक सूचियाँ C ++ में