Abstraction
Data abstraction(एब्स्ट्रैक्शन) C++ में object oriented programming(ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) के most essential और important feature में से एक है। abstraction(एब्स्ट्रैक्शन) का अर्थ है केवल essential information (आवश्यक जानकारी) display करना और details को hide रखना। Data abstraction(एब्स्ट्रैक्शन) का तात्पर्य outside world को data के बारे में केवल essential information प्रदान करना, background details या implementation को छिपाना है।
एब्सट्रेक्शन से आशय ऐसी प्रक्रिया से है, जिसमें सिर्फ वही तत्व रखे जाते हैं, जिनकी आवश्यकता होती है, तथा अनावश्यक तत्वों को हटा दिया जाता है। उदाहरण के लिए किसी लायब्रेरी के लिए सॉफ्टवेयर बनाने के लिए Books नाम की क्लास बनानी होगी। इस क्लास में Books की सिर्फ वही details रखी जाएंगी जो कि लायब्रेरी के लिए आवश्यक हो। आवश्यक तत्वों में book name, author name, book price आदि हो सकते हैं, वहीं अनावश्यक तत्वों में book width, book height आदि हो सकते हैं।
अतः एब्सट्रेक्शन प्रक्रिया में Books क्लास में सिर्फ book name, author name, book price को ही रखा जाएगा।
real life example के तौर पआर एक कार चलाने वाले व्यक्ति के real life को Consider करें। आदमी केवल यह जानता है कि accelerators (एक्सीलरेटर) दबाने से कार की गति बढ़ जाएगी या brakes (ब्रेक) लगाने से कार रुक जाएगी लेकिन वह यह नहीं जानता कि accelerators (एक्सीलरेटर) दबाने पर गति वास्तव में कैसे बढ़ रही है, वह कार के mechanism के बारे में नहीं जानता है।
Abstraction using Classes:-
हम classes का Use करके C++ में abstraction(एब्स्ट्रैक्शन) implement कर सकते हैं। क्लास हमें available access specifiers का उपयोग करके data members और member functions को group करने में मदद करता है। एक class के द्वारा यह तय किया जाता हैं कि कौन सा data members outside world को दिखाई देगा और कौन सा नहीं।
Abstraction in Header files:-
C++ में एक और प्रकार का abstraction(एब्स्ट्रैक्शन) header files हो सकता है। उदाहरण के लिए, math.h header files में मौजूद pow() method पर विचार करें। जब भी हमें किसी न Number को calculate करने की आवश्यकता होती है, तो हम केवल math.h header file में मौजूद फ़ंक्शन pow() को कॉल करते हैं और Number को arguments के रूप में पास करते हैं, underlying algorithm को जाने बिना फ़ंक्शन according Number को calculatकर रहा है।
Abstraction using access specifiers
Access specifiers C++ में abstraction (एब्स्ट्रैक्शन) को implement करने का main pillar है। हम Class के members पर enforce restrictions(प्रतिबंध लागू) करने के लिए access specifiers का उपयोग कर सकते हैं।
For Example
- एक Class में public declare किए गए Members को Program में कहीं से भी access (एक्सेस) किया जा सकता है।
- एक Class में Private declare किए गए Members को Program के केवल class के भीतर से ही access किया जा सकता है। उन्हें class के बाहर से access एक्सेस नहीं किया जा सकताहै।
access specifiers द्वारा provide किए गए उपरोक्त दो features का उपयोग करके हम आसानी से abstraction को implement कर सकते हैं। कहें, internal implementation को defines करने वाले members को class में private के रूप में mark किया जा सकता है। और outside world को दी जाने वाली आवश्यक महत्वपूर्ण जानकारी को public के रूप में mark किया जा सकता है। और ये public members, private members Access सकते हैं क्योंकि वे Class के अंदर हैं।
Example:-
Output:-
a = 10
b = 20
Explain Example
आप उपरोक्त program में देख सकते हैं कि हमें variable 'a' और 'b' को सीधे access करने की अनुमति नहीं है, हालांकि कोई 'a' और 'b' में वैल्यू set करने के लिए हम set() Function को call कर सकते है और display() Function से 'a' और 'b' की value को Display कर सकते हैं।
0 Comments