Object Oriented Principles
परिचय (Introduction)
Object Oriented Programming (OOP) एक प्रोग्रामिंग तकनीक है जिसमें सॉफ्टवेयर को कई छोटे-छोटे ऑब्जेक्ट्स (Objects) में बाँटा जाता है। हर ऑब्जेक्ट में डेटा (Data) और फंक्शन (Functions) होते हैं, जो उस डेटा पर काम करते हैं।
यह तरीका असली दुनिया की वस्तुओं की तरह व्यवहार करता है, जहाँ हर वस्तु का कुछ गुण (Properties) और कुछ कार्य (Behavior) होता है।
Object-Oriented Programming के 4 मुख्य सिद्धांत (Principles)
OOP के चार आधारभूत सिद्धांत होते हैं:
- Encapsulation (एनकैप्सुलेशन)
- Abstraction (एब्स्ट्रैक्शन)
- Inheritance (इनहेरिटेंस)
- Polymorphism (पॉलीमॉर्फ़िज़्म)
1. Encapsulation (एनकैप्सुलेशन)
Encapsulation का मतलब है — डेटा और उस पर काम करने वाले फंक्शन को एक ही इकाई (Unit) में बाँधना और बाहरी दुनिया से छुपाना।
उदाहरण
मान लीजिए आपके पास एक Student class है जिसमें student के marks और attendance का डेटा है। अगर आप नहीं चाहते कि कोई और क्लास सीधा इस डेटा को बदल सके, तो आप इसे private बना देते हैं और एक public method के ज़रिए access देते हैं।
यहाँ #marks को directly access नहीं किया जा सकता — यह encapsulation है।
फायदे
- डेटा सुरक्षित रहता है (Data Security)
- प्रोग्राम modular और maintainable बनता है
- गलतियाँ (bugs) कम होती हैं
2. Abstraction (एब्स्ट्रैक्शन)
Abstraction का मतलब है — उपयोगकर्ता को सिर्फ ज़रूरी जानकारी दिखाना और बाकी की जटिलता को छुपाना।
उदाहरण
जब आप मोबाइल फोन का कैमरा चलाते हैं, तो आप सिर्फ बटन दबाते हैं। कैमरे के अंदर जो सैकड़ों processing steps हो रहे हैं — वो सब आपके लिए छुपे रहते हैं।
यहाँ यूज़र को सिर्फ drive() method दिखता है, जबकि अंदर startEngine() होता है – यही abstraction है।
फायदे
- कोड का इस्तेमाल आसान बनता है
- सिर्फ ज़रूरी चीजें सामने आती हैं
- प्रोग्राम साफ और user-friendly बनता है
3. Inheritance (इनहेरिटेंस)
Inheritance का मतलब है — एक class (Child class) दूसरी class (Parent class) की Properties और Methods को अपने अंदर शामिल कर सकती है।
उदाहरण
एक बच्चा अपने माता-पिता से गुण (qualities) विरासत में लेता है। उसी तरह एक subclass अपने superclass की विशेषताओं को इस्तेमाल कर सकता है।
Dog class ने Animal की speak() method inherit की – यह inheritance है।
प्रकार (Types of Inheritance):
- Single Inheritance – एक base और एक derived class
- Multilevel Inheritance – एक class, दूसरी class से, और वो किसी और से
- Multiple Inheritance – एक class, दो या ज्यादा classes से inherit करती है
- Hierarchical Inheritance – एक base class, कई derived classes को
- Hybrid Inheritance – उपर्युक्त inheritances का combination
फायदे
- Code Reusability
- Fast Development
- Logical hierarchy बनाए रखता है
4. Polymorphism (पॉलीमॉर्फ़िज़्म)
Polymorphism का मतलब है — एक चीज़ का कई रूप होना। यानी एक ही नाम का function अलग-अलग तरीकों से behave करता है।
प्रकार
(i) Compile-time Polymorphism (Method Overloading)
(ii) Run-time Polymorphism (Method Overriding)
फायदे
- Flexibility बढ़ाता है
- Objects dynamic behavior दिखा सकते हैं
Maintenance आसान होता है