Introduction
Object Oriented Programming में program को इस प्रकार design किया जाता है कि data और उससे संबंधित functions को एक साथ संगठित (organize) किया जा सके। जब data और उस पर कार्य करने वाले functions अलग-अलग होते हैं, तो program को manage करना कठिन हो जाता है और data misuse होने की संभावना बढ़ जाती है।
Encapsulation इस समस्या का समाधान प्रदान करता है। यह data और functions को एक ही unit (class) के अंदर बांधकर रखता है, जिससे program अधिक structured, secure और easy to manage बनता है।
Definition of Encapsulation
Encapsulation वह प्रक्रिया है जिसमें data (variables) और functions (methods) को एक साथ एक ही unit (class) में bind किया जाता है और data को सीधे access करने के बजाय functions के माध्यम से access किया जाता है।
Encapsulation का मुख्य विचार
- Data और Functions को एक साथ रखना
- Data को direct access से बचाना
- Controlled access प्रदान करना
Encapsulation कैसे काम करता है?
Encapsulation को लागू करने के लिए:
- Data members को private रखा जाता है
- Member functions को public बनाया जाता है
- Functions के माध्यम से data को access और modify किया जाता है
C++ में Encapsulation का उदाहरण
#include <iostream>
using namespace std;
class Student {
private:
int marks;
public:
void setMarks(int m) {
marks = m;
}
int getMarks() {
return marks;
}
};
int main() {
Student s1;
s1.setMarks(85);
cout << "Marks: " << s1.getMarks();
return 0;
}
Output:
Marks: 85
Working को समझना
marksprivate है, इसलिए इसे सीधे access नहीं किया जा सकताsetMarks()के माध्यम से value assign की गईgetMarks()के माध्यम से value प्राप्त की गई- Data पूरी तरह control में रहा
Encapsulation के लाभ
- Data security बढ़ती है
- Program अधिक organized होता है
- Code maintain करना आसान होता है
- Data को नियंत्रित तरीके से उपयोग किया जा सकता है
Encapsulation और Data Hiding में अंतर
- Data Hiding → Data को छुपाने पर focus करता है
- Encapsulation → Data और functions को एक साथ bind करने पर focus करता है
दोनों concepts एक-दूसरे से जुड़े हुए हैं और साथ में उपयोग होते हैं।
निष्कर्ष
Encapsulation OOP का एक महत्वपूर्ण सिद्धांत है जो data और functions को एक साथ जोड़कर program को सुरक्षित और व्यवस्थित बनाता है। यह controlled access प्रदान करता है और code की quality को बेहतर बनाता है।