oops - what is object oriented programming in hindi



इनकैप्सुलेशन और एब्स्ट्रक्शन के बीच का अंतर (7)

छुपाएं वेरिएबल्स या कुछ कार्यान्वयन जो किसी कक्षा में बार-बार बदले जा सकते हैं ताकि बाहरी लोगों को इसे सीधे तौर पर एक्सेस करने में रोक सकें वे इसे प्राप्तकर्ता और सेटर विधियों के माध्यम से एक्सेस करना चाहिए

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

https://src-bin.com

आज मुझे एक साक्षात्कार हुआ। मुझे एओपी से सवाल है, एन्कैप्सुलेशन और एब्स्ट्रक्शन के बीच के अंतर के बारे में?

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

यह सवाल पूछने से पहले, मैं इन दो OOP अवधारणाओं के बीच अंतर के बारे में स्टैक ओवरफ्लो पर अन्य धागे पढ़ता हूं। लेकिन साक्षात्कारकर्ता को समझने की स्थिति में मुझे अपना आत्म नहीं मिल रहा है

क्या कोई इसे सरलतम उदाहरण के साथ उचित ठहरा सकता है?


Answer #1

मेरे लिए, एनकैप्सुलेशन, वर्बोज़ / जटिल प्रक्रियाओं को छोटे और अधिक संगठित सबरूटीन में तोड़ने की प्रक्रिया है।

function DoEverything() {
   // do everything
}
function Encapsulation() {
    GetTheLegos(); 
    BuildTheLegoShip();
    PretendYouAreAPirate();
}

अमूर्त प्रक्रिया प्रक्रियाओं के एक समूह की समानता पाने की प्रक्रिया है और इन समानताओं को एक ही प्रक्रिया में समेकित कर रही है।

private void ProcessOne() {
    try {
        // code
    }catch(exception ex) {
        Utilities.log(ex);
        Error.Text = "Error!";
    }
}
private void ProcessTwo() {
    try {
        // different code
    }catch(exception ex) {
        Utilities.log(ex);
        Error.Text = "Error!";
    }
}

और फिर इसे नीचे की तरह कुछ में बदल दिया।

private void HandleException(exception ex) {
    Utilities.log(ex);
    Error.Text = "Error!";
}
private void ProcessOne() {
    try {
        // code
    }catch(exception ex) {
        HandleException(ex);
    }
}
private void ProcessTwo() {
    try {
        // code
    }catch(exception ex) {
        HandleException(ex);
    }
}

Answer #2

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

एन्कैप्सुलेशन - डेटा को संलग्न करने की प्रक्रिया है और इस डेटा को एक इकाई में जोड़कर क्रियान्वित करता है, जिससे कि बाहरी दुनिया से आंतरिक कार्यान्वयन छिपाना हो।

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


Answer #3

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

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


Answer #4

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

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

इनकैप्सुलेशन और एब्स्ट्रक्शन के बीच का कार्यान्वयन अंतर

  1. एब्सट्रैक्शन इंटरफ़ेस और अमूर्त वर्ग का उपयोग करते हुए कार्यान्वित किया जाता है जबकि एनक्यूप्शन निजी और संरक्षित एक्सेस मॉडिफ़र का उपयोग करके कार्यान्वित किया जाता है।

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


Answer #5

अमूर्त: न्यूनतम कार्य क्या हैं, और वेरिएबल को हमारी कक्षा के बाहर की तरफ दिखाना चाहिए। encapsulation: इस आवश्यकता को कैसे प्राप्त किया जाए, इसका अर्थ है कि कैसे कार्यान्वित करना है


Answer #6

एब्स्ट्रक्शन आपको एक अधिक सार तस्वीर देकर जटिलता को छुपाता है, एक प्रकार का 10,000 फीट दृश्य, जबकि एन्कैप्शनियम आंतरिक काम को छुपाता है ताकि आप इसे बाद में बदल सकें दूसरे शब्दों में, एब्सट्रैक्शन डिज़ाइन स्तर पर विवरण छुपाता है, जबकि एन्कैप्शनियम कार्यान्वयन स्तर पर विवरण छुपाता है।

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

इनकैप्सुलेशन सभी कार्यान्वयन के बारे में है इसका एकमात्र उद्देश्य बाहरी दुनिया से वस्तुओं के आंतरिक काम को छिपाने के लिए है ताकि आप बाहर के ग्राहकों को प्रभावित किए बिना बाद में इसे बदल सकें।

उदाहरण के लिए, हमारे पास एक हैशमैप है जो आपको ऑब्जेक्ट को (put) विधि का उपयोग करके संग्रहीत करने और get () विधि का उपयोग करके ऑब्जेक्ट पुनर्प्राप्त करने की अनुमति देता है। कैसे हाशम इस पद्धति को लागू करता है (देखें यहां) हैशमैप का एक आंतरिक विवरण है, क्लाइंट केवल परवाह करता है कि ऑब्जेक्ट को स्टोर रखता है और इसे वापस लौटा लेते हैं, वे चिंतित नहीं हैं कि क्या हैशमैप एक सरणी का उपयोग कर रहा है, यह कैसे टकराव का समाधान कर रहा है यह एक ही बाल्टी आदि पर ऑब्जेक्ट लैंडिंग को स्टोर करने के लिए लिंक की गई सूची या बाइनरी ट्री का उपयोग कर रहा है।





oop