साइट खोज

ओप क्या है? ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के बुनियादी सिद्धांत

क्यों ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंगसबसे परियोजनाओं में प्राथमिकता दी जाती है? ओओपी उनकी जटिलता से निपटने के लिए एक प्रभावी तरीका प्रदान करता है। कार्यक्रम को निष्पादन योग्य निर्देशों के अनुक्रम के रूप में देखने के बजाय, यह इसे विशिष्ट गुणों वाले वस्तुओं के समूह के रूप में दर्शाता है और उनके साथ कुछ कार्य करता है। इससे अधिक स्पष्ट, अधिक विश्वसनीय और आसानी से अनुसरण करने वाले अनुप्रयोगों के निर्माण की ओर बढ़ जाता है

ऑब्जेक्ट ओरिएंटेड के बुनियादी सिद्धांतप्रोग्रामिंग (ओओपी) का गठन किया गया था क्योंकि पहले के तरीकों में सीमाएं पाई गईं थीं उनमें - डेटा तक पहुंच के लिए असीमित पहुंच और बड़ी संख्या में लिंक जो परिवर्तनों की शुरूआत पर प्रतिबंध लगाते हैं। ओपी प्रोग्रामिंग में है और इसके लाभ क्या हैं यह समझने के लिए उनकी जागरूकता और कारण महत्वपूर्ण हैं।

प्रक्रियात्मक भाषाओं

सी, पास्कल, फोरट्रान और इसी तरह की भाषाएं हैंप्रक्रियात्मक। अर्थात्, उनके प्रत्येक ऑपरेटर कंप्यूटर को कुछ करने के लिए कहता है: डेटा प्राप्त करें, संख्याएं जोड़ें, छः से विभाजित करें, परिणाम प्रदर्शित करें प्रक्रियात्मक भाषा अनुप्रयोग निर्देशों की एक सूची है यदि यह छोटा है, तो कोई अन्य संगठनात्मक सिद्धांत (अक्सर एक प्रतिमान कहा जाता है) आवश्यक है। प्रोग्रामर निर्देशों की एक सूची बनाता है, और कंप्यूटर उन्हें निष्पादित करता है।

कार्यों में पृथक्करण

जब अनुप्रयोग बड़े हो जाते हैं, तो सूचीबोझिल है कुछ ही कुछ सौ निर्देशों से अधिक समझ सकते हैं जब तक कि उन्हें एक साथ समूहित नहीं किया जाता। इस कारण से, फ़ंक्शन उनके रचनाकारों के लिए एप्लिकेशन को और अधिक समझने योग्य बनाने का एक तरीका बन गया है। कुछ भाषाओं में, एक ही अवधारणा को उपप्रोग्राम या प्रक्रिया कहा जा सकता है।

आवेदन कार्यों में विभाजित है, जिनमें से प्रत्येक का स्पष्ट रूप से परिभाषित उद्देश्य और इंटरफ़ेस है।

प्रक्रियाओं में जुदाई का विचार उन्हें एक बड़े वस्तु में समूहित करके बढ़ाया जा सकता है, जिसे एक मॉड्यूल कहा जाता है, लेकिन सिद्धांत समान है: घटक सूचीबद्ध करना जो कि निर्देश सूचीएं निष्पादित करते हैं।

कार्य और मॉड्यूल में पृथक्करण संरचनात्मक प्रोग्रामिंग के मुख्य स्तंभों में से एक है, जो ओओपी के आगमन से पहले कई दशकों तक पूर्व-प्रभावी ढंग से किया गया था।

यह ओप

संरचित प्रोग्रामिंग की समस्याएं

जैसे अनुप्रयोगों में तेजी से वृद्धि हुईबड़ी, संरचनात्मक प्रोग्रामिंग ने कठिनाइयों का अनुभव करना शुरू किया परियोजनाएं बहुत जटिल हो गईं ग्राफ़ स्थानांतरित कर दिया बड़ी संख्या में प्रोग्रामर शामिल थे जटिलता में वृद्धि हुई। लागत बढ़ गई, चार्ट आगे बढ़ गया, और पतन आया।

इन विफलताओं के कारणों के विश्लेषण ने कमियों का खुलासा कियाप्रक्रियात्मक प्रतिमान। भले ही प्रोग्रामिंग के लिए एक संरचित दृष्टिकोण कितना अच्छा कार्यान्वित किया गया हो, बड़े अनुप्रयोग अत्यधिक जटिल हो जाते हैं।

इन समस्याओं के कारणों के कारण क्या हैंप्रक्रियात्मक भाषाओं? सबसे पहले, कार्यों के वैश्विक डेटा तक असीमित पहुंच है। दूसरी बात, असंबंधित प्रक्रियाओं और अर्थ वास्तविक दुनिया का मॉडल नहीं करते हैं।

यदि हम इन समस्याओं को संदर्भ में मानते हैंइन्वेंट्री एकाउंटिंग का कार्यक्रम, फिर सबसे महत्वपूर्ण वैश्विक डेटा तत्वों में से एक लेखांकन इकाइयों का कुल है। अलग-अलग फ़ंक्शंस उन्हें एक नया मान दर्ज करने, इसे प्रदर्शित करने, इसे बदलने, आदि पर पहुंच सकते हैं।

असीमित पहुंच

लिखे गए एक कार्यक्रम में, उदाहरण के लिए, सी में, दो प्रकार के डेटा होते हैं। स्थानीय फ़ंक्शन के अंदर छिपा हुआ है और अन्य प्रक्रियाओं का उपयोग नहीं किया जाता है।

जब दो या दो से अधिक कार्यों का उपयोग किया जाना हैउसी डेटा पर, बाद वाला वैश्विक होना चाहिए। ये, उदाहरण के लिए, वस्तुओं को ध्यान में रखे जाने के बारे में जानकारी हैं। किसी भी प्रक्रिया से वैश्विक डेटा तक पहुंचा जा सकता है।

एक बड़े कार्यक्रम में कई कार्य और कई वैश्विक तत्व हैं। प्रक्रियात्मक प्रतिमान के साथ समस्या यह है कि इससे उनके बीच संभावित संबंधों की एक बड़ी संख्या होती है।

यौगिकों की इतनी बड़ी संख्या का कारण बनता हैकुछ कठिनाइयों सबसे पहले, यह कार्यक्रम की संरचना की समझ को जटिल बनाता है। दूसरा, यह बदलाव करना मुश्किल बनाता है। वैश्विक डेटा आइटम में किए गए परिवर्तन के लिए उन सभी कार्यों के समायोजन की आवश्यकता हो सकती है, जिनके पास पहुंच है।

उदाहरण के लिए, लेखांकन कार्यक्रम में, कोई कोड को तय करता हैलेखित विषय में 5 अंकों की संख्या नहीं होनी चाहिए, लेकिन 12 के लिए। इसमें डेटा प्रकार को छोटे से लंबे समय तक बदलने की आवश्यकता होगी। अब कोड से संबंधित कार्यों को नए प्रारूप के साथ काम करने के लिए बदला जाना चाहिए।

जब तत्व बड़े एप्लिकेशन में बदलते हैं,यह कहना मुश्किल है कि कौन सी प्रक्रियाओं तक पहुंच है। लेकिन अगर यह स्पष्ट किया गया है, तो उन्हें बदलने से अन्य वैश्विक डेटा के साथ गलत काम हो सकता है। सब कुछ सबकुछ से जुड़ा हुआ है, इसलिए एक स्थान में बदलाव दूसरे में होगा।

प्रोग्रामिंग में ओओपी क्या है

असली दुनिया मॉडलिंग

प्रक्रियात्मक की दूसरी और अधिक महत्वपूर्ण समस्याप्रतिमान यह है कि व्यक्तिगत डेटा और कार्यों का उसका स्थान असली दुनिया में चीजों को खराब बनाता है। यहां हम लोगों और कारों के रूप में ऐसी वस्तुओं से निपटते हैं। वे डेटा या कार्यों की तरह दिखते नहीं हैं। जटिल वास्तविक वस्तुओं में गुण और व्यवहार होता है।

गुण

विशेषताओं के उदाहरण (कभी-कभी कहा जाता हैविशेषताओं) लोगों के लिए आंखों का रंग और नौकरी का शीर्षक, कारों के लिए - बिजली और दरवाजे की संख्या। जैसा कि यह निकला, वास्तविक दुनिया में गुण कार्यक्रम के डेटा के बराबर हैं। उनके पास विशिष्ट अर्थ हैं, जैसे कि नीली (आंखों का रंग) या चार (दरवाजे की संख्या)।

व्यवहार

व्यवहार यह है कि असली दुनिया की वस्तुओंकुछ प्रभाव के जवाब में उत्पादन। यदि आप अधिकारियों से अपने वेतन बढ़ाने के लिए कहते हैं, तो जवाब "हां" या "नहीं" है। यदि आप ब्रेक दबाते हैं, तो कार बंद हो जाती है। उच्चारण और बंद व्यवहार के उदाहरण हैं। व्यवहार एक प्रक्रिया की तरह है: इसे कुछ करने के लिए कहा जाता है, और यह करता है। इस प्रकार, अकेले डेटा और कार्य वास्तविक दुनिया वस्तुओं को कुशलता से मॉडल नहीं करते हैं।

को संबोधित करते

ओओपी में ऑब्जेक्ट को संग्रह के रूप में दर्शाया गया हैडेटा और कार्यों। केवल प्रक्रियाएं जिन्हें सी ++ में सदस्य फ़ंक्शंस कहा जाता है, वे आपको इसके मान प्राप्त करने की अनुमति देते हैं। डेटा छुपा हुआ है और परिवर्तन से संरक्षित है। मूल्यों और कार्यों को एक इकाई में encapsulated हैं। ओओ-भाषाओं के विवरण में मुख्य शब्द एनकैप्यूलेशन और छुपाएं हैं।

यदि आप डेटा को बदलना चाहते हैं, तो आप जानते हैं कि कौन से फ़ंक्शन उनके साथ बातचीत करते हैं। कोई अन्य प्रक्रिया उन्हें एक्सेस नहीं कर सकती है। यह प्रोग्राम को लिखने, डिबग करने और बनाए रखने को सरल बनाता है।

एक नियम के रूप में, एप्लिकेशन में कई ऑब्जेक्ट होते हैं जो सदस्य कार्यों को कॉल करते हुए एक दूसरे के साथ बातचीत करते हैं।

आज ओओपी की सबसे व्यापक रूप से इस्तेमाल की जाने वाली भाषा(ऑब्जेक्ट उन्मुख प्रोग्रामिंग) - सी ++ (प्लस प्लस)। जावा में कुछ फ़ंक्शन, जैसे पॉइंटर्स, टेम्पलेट्स और एकाधिक विरासत की कमी है, जो इसे C ++ से कम शक्तिशाली और बहुमुखी बनाता है। सी # अभी तक सी ++ की लोकप्रियता तक नहीं पहुंच पाया है।

यह ध्यान दिया जाना चाहिए कि तथाकथितसी ++ में सदस्य कार्यों को स्मॉलटाक जैसे कुछ अन्य ओओ भाषाओं में विधियों कहा जाता है। डेटा तत्वों को गुण कहा जाता है। ऑब्जेक्ट विधि को कॉल करना एक संदेश भेज रहा है।

प्लस के साथ ऑब्जेक्ट उन्मुख प्रोग्रामिंग

समानता

आप कंपनी के विभागों को ऑब्जेक्ट्स जमा कर सकते हैं। ज्यादातर संगठनों में, कर्मचारी एक दिन कैडर के साथ काम नहीं करते हैं, अगली बार पेरोल पर और फिर एक सप्ताह खुदरा बिक्री कर रहे हैं। स्पष्ट रूप से असाइन की गई जिम्मेदारियों के साथ प्रत्येक विभाग के अपने कर्मचारी होते हैं। अपने डेटा भी हैं: वेतन, बिक्री के आंकड़े, कर्मचारी रिकॉर्ड इत्यादि। विभागों में लोग अपनी जानकारी के साथ काम करते हैं। इस प्रकार कंपनी का पृथक्करण, इसकी गतिविधियों पर नियंत्रण को सुविधाजनक बनाता है और डेटा की अखंडता को बनाए रखता है। लेखांकन पेरोल के लिए ज़िम्मेदार है। यदि आपको जुलाई में दक्षिणी शाखा में चुकाई गई मजदूरी की कुल राशि जाननी है, तो आपको संग्रह में घुसपैठ की आवश्यकता नहीं है। प्रभारी व्यक्ति को एक नोट भेजने के लिए पर्याप्त है, इस व्यक्ति को डेटा तक पहुंच प्राप्त करने और आवश्यक जानकारी के साथ प्रतिक्रिया भेजने का इंतजार करें। यह नियमों और बाहरी हस्तक्षेप की अनुपस्थिति के अनुपालन को सुनिश्चित करता है। इसी तरह, ओओपी में ऑब्जेक्ट एप्लिकेशन के संगठन को प्रदान करता है।

यह याद रखना चाहिए कि वस्तुओं के लिए अभिविन्यास नहीं हैकार्यक्रम के विवरण से संबंधित है। अधिकांश सी ++ कथन प्रक्रियात्मक भाषा ऑपरेटरों से मेल खाते हैं जैसे कि सी। वास्तव में, सी ++ में सदस्य कार्य सी में कार्यों के समान हैं। केवल एक व्यापक संदर्भ यह निर्धारित करने की अनुमति देगा कि निर्देश प्रक्रियात्मक या ऑब्जेक्ट उन्मुख है या नहीं।

ओप में ऑब्जेक्ट

ओओपी में वस्तु: परिभाषा

प्रोग्रामिंग समस्या पर विचार करते समयओओ भाषा, इसके विभाजन के बारे में प्रश्नों के बजाय अलग-अलग कार्यों में, वस्तुओं में अलगाव की समस्या उत्पन्न होती है। ओओपी सोच अनुप्रयोगों को विकसित करना अधिक आसान बनाता है। यह सॉफ्टवेयर और वास्तविक वस्तुओं की समानता के कारण है।

ओओपी में क्या चीजें बनती हैं? नीचे सामान्य श्रेणियां हैं।

ओओपी में भौतिक वस्तु है:

  • प्रवाह पैटर्न में परिवहन;
  • सर्किट डिजाइन कार्यक्रमों में विद्युत तत्व;
  • अर्थव्यवस्था के मॉडल में देश;
  • हवाई यातायात नियंत्रण प्रणाली में विमान।

उपयोगकर्ता के कंप्यूटर वातावरण के तत्व:

  • मेनू;
  • खिड़कियों;
  • ग्राफिक्स (रेखा, आयत, सर्कल);
  • कीबोर्ड, माउस, प्रिंटर, डिस्क ड्राइव।

लोग:

  • श्रमिकों;
  • छात्रों;
  • ग्राहकों;
  • विक्रेताओं।

जानकारी:

  • लेखांकन पुस्तक;
  • एक निजी मामला;
  • शब्दकोश;
  • अक्षांश और बस्तियों के अक्षांश की मेज।

असली दुनिया वस्तुओं और ओओपी के बीच संबंध कार्यों और डेटा के संयोजन का परिणाम था: उन्होंने प्रोग्रामिंग में क्रांतिकारी बदलाव किया। प्रक्रियात्मक भाषाओं में ऐसा कोई करीबी पत्राचार नहीं है।

एक ओओपी परिभाषा में वस्तु

वर्ग

ओओपी में ऑब्जेक्ट्स कक्षाओं के सदस्य हैं। इसका क्या मतलब है? प्रोग्रामिंग भाषाओं में अंतर्निहित डेटा प्रकार हैं। Int प्रकार, यानी, एक पूर्णांक, C ++ में पूर्वनिर्धारित है। आप किसी भी प्रकार के int चर घोषित कर सकते हैं।

इसी प्रकार, एक ही कक्षा की वस्तुओं का एक सेट परिभाषित किया गया है। यह उनके निर्माण में शामिल किए गए कार्यों और डेटा को परिभाषित किए बिना परिभाषित करता है, जैसे int intables नहीं बनाता है।

ओओपी में कक्षा कई समान वस्तुओं का विवरण है। प्रिंस, स्टिंग और मैडोना गायक हैं। उस नाम के साथ एक भी व्यक्ति नहीं है, लेकिन अगर लोगों के पास उचित विशेषताएं हैं तो लोगों को इतना बुलाया जा सकता है। ओओपी ऑब्जेक्ट कक्षा का एक उदाहरण है।

विरासत

जीवन में, कक्षाएं उप-वर्गों में विभाजित होती हैं। उदाहरण के लिए, जानवर उभयचर, स्तनधारियों, पक्षियों, कीड़े, आदि में विभाजित हैं।

इस तरह के विभाजन का सिद्धांत है किप्रत्येक उप-वर्ग में कक्षा के साथ सामान्य विशेषताएं होती हैं, जिससे यह होता है। सभी कारों में पहियों और इंजन होते हैं। ये वाहनों की परिभाषित विशेषताएं हैं। सामान्य विशेषताओं के अलावा, प्रत्येक उपclass की अपनी विशेषताओं है। बसों में कई सीटें हैं, और ट्रक में भारी भार ले जाने के लिए जगह है।

इसी प्रकार, बेस क्लास माता-पिता बन सकता हैकई व्युत्पन्न उप-वर्ग जिन्हें परिभाषित किया जा सकता है ताकि वे अपनी विशेषताओं को अपने स्वयं के जोड़ के साथ साझा कर सकें। विरासत एक ऐसे कार्य के समान है जो प्रक्रियात्मक कार्यक्रम को सरल बनाता है। यदि कोड के कई भाग लगभग समान होते हैं, तो आप सामान्य तत्वों को निकाल सकते हैं और उन्हें एक प्रक्रिया में डाल सकते हैं। तीन आवेदन अनुभाग सामान्य कार्यों को करने के लिए एक समारोह को कॉल कर सकते हैं, लेकिन वे अपने स्वयं के संचालन भी कर सकते हैं। इसी तरह, बेस क्लास में व्युत्पन्न समूह के लिए आम डेटा होता है। कार्यों की तरह, विरासत ओओ कार्यक्रम को कम कर देता है और इसके तत्वों के अंतःक्रिया को स्पष्ट करता है।

ओओपी में वस्तु

रीसाइक्लिंग

कक्षा के निर्माण और डीबग होने के बाद, यह कर सकता हैअपने स्वयं के अनुप्रयोगों में पुन: उपयोग के लिए अन्य प्रोग्रामर को पास किया जाना चाहिए। यह उन कार्यों की एक लाइब्रेरी के समान है जिसे विभिन्न अनुप्रयोगों में शामिल किया जा सकता है।

ओओपी में, विरासत विचार का एक विस्तार हैएकाधिक उपयोग मौजूदा वर्ग से, इसे बदलने के बिना, आप अन्य कार्यों को जोड़ने के साथ एक नया बना सकते हैं। मौजूदा सॉफ्टवेयर का पुन: उपयोग करने की आसानी ओओपी का एक महत्वपूर्ण लाभ है। ऐसा माना जाता है कि यह प्रारंभिक निवेश से उपज में वृद्धि प्रदान करता है।

नए डेटा प्रकार बनाना

ऑब्जेक्ट्स नए प्रकार के डेटा बनाने के लिए सुविधाजनक हैं। मान लीजिए कार्यक्रम दो-आयामी मानों का उपयोग करता है (उदाहरण के लिए, निर्देशांक या अक्षांश और देशांतर), और उनके साथ अंकगणितीय परिचालनों को क्रिया व्यक्त करने की इच्छा है:

स्थिति 1 = स्थिति + मूल,

जहां स्थिति 1, स्थिति, और मूल स्वतंत्र संख्यात्मक मानों के जोड़े हैं। एक वर्ग बनाना जिसमें इन दो मानों को शामिल करना और इसकी वस्तुओं के साथ चर घोषित करना एक नया डेटा प्रकार बनाता है।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के बुनियादी सिद्धांत

पॉलिमॉर्फिज्म, ओवरलोड

ऑपरेटर = (बराबर) और + (प्लस) में उपयोग किया जाता हैउपरोक्त स्थितित्मक अंकगणित, अंतर्निहित प्रकारों जैसे int के साथ कार्य न करें। ऑब्जेक्ट्स स्थिति इत्यादि पूर्वनिर्धारित नहीं हैं, लेकिन प्रोग्राम किए गए हैं। इन ऑपरेटरों को कैसे पता चलेगा कि उन्हें कैसे संभालें? जवाब यह है कि उनके लिए आप नए व्यवहार पैटर्न को परिभाषित कर सकते हैं। ये ऑपरेशन स्थिति वर्ग के सदस्य कार्य होंगे।

ऑपरेटरों या प्रक्रियाओं का उपयोग करेंवे जो काम करते हैं उसके आधार पर, पॉलिमॉर्फिज्म कहा जाता है। जब कोई मौजूदा ऑपरेटर, जैसे + या =, एक नए डेटा प्रकार के साथ काम करने में सक्षम होता है, तो इसे ओवरलोड किया जाता है। ओओपी में ओवरलोडिंग एक प्रकार का बहुरूपता है। यह इसकी महत्वपूर्ण विशेषता है।

ओओपी "ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग फॉर डमीज" के बारे में पुस्तक सभी को इस विषय से अधिक विस्तार से परिचित होने की अनुमति देगी।

</ p>
  • मूल्यांकन: