object oriented programming c
C ++ में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का परिचय।
इस ट्यूटोरियल के साथ, हम C ++ के बारे में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज के बारे में जानने के लिए ट्यूटोरियल की एक श्रृंखला शुरू कर रहे हैं।
जैसा कि हम जानते हैं, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) से पहले, प्रक्रियात्मक भाषाओं का उपयोग करके प्रोग्राम लिखे गए थे। प्रक्रियात्मक भाषाएँ तनाव कार्य करती हैं। बड़ी समस्याओं को छोटी उप-समस्याओं में तोड़ दिया जाता है और कार्यों के रूप में लिखा जाता है।
=> पूर्ण सी ++ ट्यूटोरियल सूची देखने के लिए यहां देखें।
प्रक्रियात्मक भाषाओं ने डेटा पर ध्यान नहीं दिया। परिणामस्वरूप, समस्या को प्रभावी तरीके से संबोधित नहीं करने की संभावना अधिक थी। इसके अलावा, चूंकि डेटा लगभग उपेक्षित था, इसलिए डेटा सुरक्षा में आसानी से समझौता किया गया था।
प्रक्रियात्मक प्रोग्रामिंग की इन सभी कमियों को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग द्वारा दूर किया गया था।
इस ट्यूटोरियल में, हम ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के मूल सिद्धांतों और संक्षेप में OOP की सभी विशेषताओं पर चर्चा करेंगे।
आप क्या सीखेंगे:
- C ++ में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग
- C ++ आंशिक OOP क्यों है?
- OOP सुविधाएँ
- OOP के फायदे
- निष्कर्ष
- अनुशंसित पाठ
C ++ में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग डेटा के आसपास घूमती है। OOP की मुख्य प्रोग्रामिंग इकाई वस्तु है। एक वस्तु एक वास्तविक समय इकाई का प्रतिनिधित्व करती है और इसमें डेटा और विधियाँ या फ़ंक्शन होते हैं जो डेटा पर काम करते हैं। इस तरह, डेटा और फ़ंक्शंस बारीकी से बंधे हुए हैं और डेटा सुरक्षा सुनिश्चित है।
ओओपी में, सब कुछ एक वस्तु के रूप में दर्शाया जाता है और जब कार्यक्रमों को निष्पादित किया जाता है, तो वस्तुएं संदेश पारित करके एक दूसरे के साथ बातचीत करती हैं। एक वस्तु को संप्रेषण के लिए किसी अन्य वस्तु के कार्यान्वयन के विवरण की आवश्यकता नहीं है।
वस्तुओं के अलावा, OOP विभिन्न सुविधाओं का समर्थन करता है जो नीचे सूचीबद्ध हैं:
- कक्षाओं
- कैप्सूलीकरण
- मतिहीनता
- विरासत
- बहुरूपता
OOP का उपयोग करते हुए, हम उपरोक्त सुविधाओं का उपयोग करके कक्षाओं और वस्तुओं का उपयोग करके प्रोग्राम लिखते हैं। एक प्रोग्रामिंग भाषा को एक सही ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा कहा जाता है, यदि वह सब कुछ जो एक वस्तु का उपयोग कर रही है, का प्रतिनिधित्व करता है। स्मालटाक एक भाषा है जो एक शुद्ध वस्तु-उन्मुख प्रोग्रामिंग भाषा है।
दूसरी ओर, C ++ और Java जैसी प्रोग्रामिंग भाषाओं को आंशिक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज कहा जाता है।
C ++ आंशिक OOP क्यों है?
C ++ भाषा को C भाषा में ऑब्जेक्ट-ओरिएंटेड फीचर्स का उपयोग करने के मुख्य उद्देश्य से डिज़ाइन किया गया था।
यद्यपि C ++ भाषा OOP की सुविधाओं का समर्थन करती है, जैसे कि कक्षाएं, ऑब्जेक्ट्स, इनहेरिटेंस, इनकैप्सुलेशन, एब्सट्रैक्शन और पॉलीमोर्फिज्म, ऐसे कुछ कारण हैं जिनके कारण C ++ को आंशिक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा के रूप में वर्गीकृत किया गया है।
<स्क्रिप्ट> अलर्ट (1) script>
हम नीचे इन कारणों में से कुछ प्रस्तुत करते हैं:
# 1) वर्ग / वस्तुओं का निर्माण वैकल्पिक है
C ++ में, मुख्य कार्य अनिवार्य है और हमेशा कक्षा के बाहर होता है। इसलिए, हम कार्यक्रम में केवल एक मुख्य कार्य कर सकते हैं और कक्षाओं और वस्तुओं के बिना कर सकते हैं।
यह शुद्ध ओओपी भाषा का पहला उल्लंघन है जहां सब कुछ एक वस्तु के रूप में दर्शाया गया है।
# 2) वैश्विक चर का उपयोग
C ++ में वैश्विक चर की एक अवधारणा है जो कार्यक्रम के बाहर घोषित की जाती है और कार्यक्रम के किसी भी अन्य इकाई द्वारा पहुँचा जा सकता है। यह इनकैप्सुलेशन का उल्लंघन करता है। हालांकि सी ++ कक्षाओं और वस्तुओं के संबंध में एनकैप्सुलेशन का समर्थन करता है, लेकिन वैश्विक चर के मामले में इसका ध्यान नहीं रखता है।
# 3) एक दोस्त समारोह की उपस्थिति
C ++ एक मित्र वर्ग या फ़ंक्शन का समर्थन करता है जिसका उपयोग अन्य वर्गों के निजी और संरक्षित सदस्यों तक पहुँचने के लिए किया जा सकता है। यह C ++ की एक और विशेषता है जो OOP प्रतिमान का उल्लंघन करता है।
समाप्त करने के लिए, हालांकि C ++ ऊपर उल्लिखित सभी OOP सुविधाओं का समर्थन करता है, यह उन विशेषताओं को भी प्रदान करता है जो इन सुविधाओं के लिए एक समाधान के रूप में कार्य कर सकते हैं, ताकि हम उनके बिना कर सकें। यह C ++ को एक आंशिक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा बनाता है।
OOP सुविधाएँ
यहां हम विभिन्न ओओपी विशेषताओं को पेश करेंगे जो प्रोग्रामिंग के लिए उपयोग किए जाते हैं।
वर्ग और वस्तुएँ
ऑब्जेक्ट ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में एक बुनियादी इकाई है। ऑब्जेक्ट में डेटा और विधियाँ या फ़ंक्शंस होते हैं जो उस डेटा पर काम करते हैं। वस्तुएं स्मृति में जगह लेती हैं।
एक वर्ग, दूसरी ओर, वस्तु का एक खाका है। इसके विपरीत, एक वस्तु को एक वर्ग के उदाहरण के रूप में परिभाषित किया जा सकता है। एक वर्ग में ऑब्जेक्ट का एक कंकाल होता है और मेमोरी में कोई स्थान नहीं लेता है।
आइए हम ए उदाहरण एक कार वस्तु की। 'मारुति' नामक कार ऑब्जेक्ट में रंग जैसे डेटा हो सकते हैं; बनाने, मॉडल, गति सीमा, आदि और कार्यों में तेजी आती है। हम एक अन्य वस्तु 'फोर्ड' को परिभाषित करते हैं। इसमें पिछले डेटा की तरह समान डेटा और फ़ंक्शंस हो सकते हैं और कुछ अतिरिक्त जोड़ भी हो सकते हैं।
इसी तरह, हमारे पास समान डेटा और फ़ंक्शंस और कुछ मामूली भिन्नताओं वाले विभिन्न नामों की कई ऑब्जेक्ट हो सकते हैं।
इस प्रकार इन अलग-अलग वस्तुओं में इन समान डेटा और कार्यों को परिभाषित करने के बजाय, हम इन वस्तुओं का एक खाका परिभाषित करते हैं जो कि कार नामक एक वर्ग है। ऊपर की प्रत्येक वस्तु इस श्रेणी की कार के उदाहरण होगी।
मतिहीनता
अमूर्तता उपयोगकर्ता से अप्रासंगिक जानकारी को छिपाने की प्रक्रिया है। उदाहरण के लिए , जब हम कार चला रहे होते हैं, तो सबसे पहले हम एक चाबी डालकर इंजन शुरू करते हैं। हम उस प्रक्रिया से अवगत नहीं हैं जो इंजन शुरू करने के लिए पृष्ठभूमि में चलती है।
प्रोग्रामिंग में अमूर्तता का उपयोग करते हुए, हम उपयोगकर्ता से अनावश्यक विवरण छिपा सकते हैं। हमारे अनुप्रयोग में अमूर्तता का उपयोग करके, अंत उपयोगकर्ता प्रभावित नहीं होता है भले ही हम आंतरिक कार्यान्वयन को बदलते हैं।
कैप्सूलीकरण
एनकैप्सुलेशन वह प्रक्रिया है जिसके उपयोग से डेटा और उन पर काम करने वाले तरीकों या कार्यों को एक साथ बांधा जाता है। ऐसा करने से, डेटा बाहरी दुनिया में आसानी से उपलब्ध नहीं होता है। OOP में हम डेटा सदस्यों को निजी बनाकर और इन डेटा सदस्यों को एक्सेस करने के लिए सार्वजनिक कार्य करके इनकैप्सुलेशन प्राप्त करते हैं।
विरासत
एक वर्ग की विरासत वस्तु का उपयोग करना किसी अन्य वर्ग की वस्तु के गुणों को विरासत में दे या प्राप्त कर सकता है। वंशानुक्रम कोड की पुन: प्रयोज्य प्रदान करता है।
जैसे कि हम किसी अन्य वर्ग के गुणों और कार्यक्षमता को प्राप्त करके एक नई कक्षा डिजाइन कर सकते हैं और इस प्रक्रिया में, हमें मूल वर्ग की कार्यक्षमता को संशोधित करने की आवश्यकता नहीं है। हम केवल कक्षा में नई कार्यक्षमता जोड़ते हैं।
बहुरूपता
बहुरूपता का अर्थ है कई रूप।
बहुरूपता OOP की एक महत्वपूर्ण विशेषता है और इसे आमतौर पर ऑपरेटर ओवरलोडिंग या फ़ंक्शन ओवरलोडिंग के रूप में लागू किया जाता है। ऑपरेटर ओवरलोडिंग एक प्रक्रिया है जिसमें एक ऑपरेटर अलग-अलग स्थितियों में अलग-अलग व्यवहार करता है। इसी तरह, फ़ंक्शन ओवरलोडिंग में, एक ही फ़ंक्शन अलग-अलग स्थितियों में अलग-अलग व्यवहार करता है।
गतिशील बंधन
OOP डायनेमिक बाइंडिंग का समर्थन करता है जिसमें रनटाइम पर फ़ंक्शन कॉल को हल किया जाता है। इसका अर्थ है कि फ़ंक्शन कॉल के परिणामस्वरूप निष्पादित की जाने वाली कोड रनटाइम पर तय की जाती है। आभासी कार्य गतिशील बंधन का एक उदाहरण है।
संदेश देना
ओओपी में, ऑब्जेक्ट संदेशों का उपयोग करके एक दूसरे के साथ संवाद करते हैं। जब वस्तुएं संवाद करती हैं, तो वस्तुओं के बीच जानकारी आगे-पीछे की जाती है। एक संदेश में आमतौर पर ऑब्जेक्ट का नाम, विधि का नाम और वास्तविक डेटा होता है जिसे किसी अन्य ऑब्जेक्ट पर भेजा जाना होता है।
OOP के फायदे
आइए OOP के कुछ फायदों के बारे में चर्चा करते हैं।
(1) पुन: प्रयोज्यता
ओओपी विरासत के माध्यम से मौजूदा कोड का पुन: उपयोग करने की अनुमति देता है। हम आसानी से मौजूदा कार्यक्षमता प्राप्त कर सकते हैं और उस पर फिर से कोड को फिर से लिखे बिना सुधार कर सकते हैं। इसके परिणामस्वरूप कम फूला हुआ कोड होता है।
# 2) प्रतिरूपकता
जैसा कि हम OOP में प्रोग्राम को संशोधित करते हैं, अगर कोई समस्या होती है या नई सुविधा या एन्हांसमेंट को जोड़ना है तो प्रोग्राम को संशोधित करना या उसका निवारण करना आसान है। मॉडर्नाइजेशन भी कोड स्पष्टता में मदद करता है और इसे अधिक पठनीय बनाता है।
# 3) लचीलापन
OOP हमें पॉलीमॉर्फिज्म फीचर का उपयोग करके लचीली प्रोग्रामिंग में मदद करता है। जैसा कि बहुरूपता कई रूप लेता है, हमारे पास ऑपरेटर या फ़ंक्शंस हो सकते हैं जो कई ऑब्जेक्ट्स के साथ काम करेंगे और इस प्रकार हमें प्रत्येक ऑब्जेक्ट के लिए अलग-अलग फ़ंक्शन लिखने से बचाएंगे।
# 4) रखरखाव
कोड को बनाए रखना अधिक आसान है क्योंकि बहुत पुनर्गठन या बदलाव के बिना नई कक्षाओं, वस्तुओं आदि को जोड़ना आसान है।
# 5) डेटा और सूचना छिपाना
नेटवर्किंग समस्या निवारण साक्षात्कार प्रश्न और उत्तर पीडीएफ
OOP हमें डेटा छिपाने में सहायता करता है, जिससे जानकारी लीक होने से सुरक्षित रहती है। कार्यक्रम के सुचारू संचालन के लिए केवल वही डेटा आवश्यक है जो आंतरिक विवरणों को छिपाकर उपयोगकर्ता के सामने लाया जाता है।
निष्कर्ष
ओओपी आधुनिक प्रोग्रामिंग का सबसे महत्वपूर्ण और लचीला प्रोग्रामिंग प्रतिमान है। यह वास्तविक दुनिया की समस्याओं के मॉडलिंग में विशेष रूप से उपयोगी है और इस प्रकार बहुत लोकप्रिय है।
हमने इस ट्यूटोरियल में OOP की विभिन्न विशेषताओं के बारे में चर्चा की है। आगे जाकर हम इन सभी विशेषताओं के बारे में विस्तार से चर्चा करेंगे।
इस श्रृंखला का अगला विषय 'OOP with C ++' वर्गों और वस्तुओं पर विस्तार से ध्यान केंद्रित करेगा।
=> निरपेक्ष सी ++ प्रशिक्षण श्रृंखला के लिए यहां क्लिक करें।
अनुशंसित पाठ
- OOP जावा: जावा में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का परिचय
- C ++ डेटा प्रकार
- टॉप 20 डेटा साइंस टूल्स 2021 में प्रोग्रामिंग को खत्म करना
- C ++ में डेटा एब्स्ट्रक्शन
- C ++ में डेटा स्ट्रक्चर्स का परिचय
- यूनिक्स पाइप्स ट्यूटोरियल: यूनिक्स प्रोग्रामिंग में पाइप्स
- QTP ट्यूटोरियल # 8 - QTP रिकॉर्डिंग मोड, ऑब्जेक्ट स्पाई और ऑब्जेक्ट रिपोजिटरी के बारे में जानें
- मुफ़्त के लिए सी ++ प्रोग्रामिंग जानने के लिए 70+ बेस्ट सी ++ ट्यूटोरियल