जावा एब्स्ट्रेक्शन- जावा में एब्सट्रैक्शन के साथ ओआरओपी को माहिर करना



जावा एब्स्ट्रेक्शन का यह लेख आपको एब्सट्रैक्ट क्लास और इंटरफ़ेस के उपयोग को समझने में मदद करेगा और एब्सट्रैक्शन का उपयोग करके इसे कैसे प्राप्त कर सकता है।

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

मैं इस लेख में नीचे दिए गए विषयों को शामिल करूंगा:





आप इस रिकॉर्डिंग के माध्यम से भी जा सकते हैं जहां आप उदाहरणों के साथ विस्तृत तरीके से विषयों को समझ सकते हैं।



ओओपी में अमूर्तता

जब हम आम तौर पर अमूर्तता के बारे में बात करते हैं तो सॉफ्टवेयर भाषा अमूर्तता का एक उदाहरण है। आइए एक उदाहरण लें और एक बयान लिखें-

x = y + z

सेलेनियम में पार ब्राउज़र परीक्षण

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



Java Abstraction क्या है?

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

कॉलिंग - जावा एब्स्ट्रेक्शन -ड्यूरेका

यदि आप ऊपर दिए गए जिफ़ को देखते हैं, तो आप देख सकते हैं कि आपको कॉल कब आती है, हमारे पास विकल्प है कि हम इसे उठाएँ या इसे अस्वीकार कर दें। लेकिन वास्तव में, बहुत सारे कोड हैं जो पृष्ठभूमि में चलते हैं। इसलिए, आप कॉल कैसे जेनरेट करते हैं, इसकी आंतरिक प्रक्रिया का पता नहीं है, यह अमूर्तता की सुंदरता है। आप दो तरीकों से अमूर्तता प्राप्त कर सकते हैं:

क) सार वर्ग

b) इंटरफ़ेस

आइए इन अवधारणाओं को अधिक विस्तार से समझें।

सार वर्ग

सार वर्ग में 'अमूर्त' कीवर्ड शामिल है। लेकिन वास्तव में इसका क्या मतलब है? यदि आप कक्षा को अमूर्त बनाते हैं, तो इसे तुरंत नहीं किया जा सकता है, अर्थात आप एक सार वर्ग का ऑब्जेक्ट नहीं बना सकते हैं। इसके अलावा, एक अमूर्त वर्ग में अमूर्त के साथ-साथ ठोस तरीके भी हो सकते हैं।

ध्यान दें: आप एक अमूर्त वर्ग का उपयोग करके 0-100% अमूर्तता प्राप्त कर सकते हैं।

अमूर्त वर्ग का उपयोग करने के लिए, आपको इसे आधार वर्ग से विरासत में लेना होगा। यहां, आपको अमूर्त विधियों के लिए कार्यान्वयन प्रदान करना होगा, अन्यथा यह एक सार वर्ग बन जाएगा।

एक सार वर्ग के वाक्यविन्यास पर नजर डालते हैं:

सार वर्ग के खेल {// सार वर्ग के खेल सार शून्य कूद () // सार विधि}

इंटरफेस

जावा में एक इंटरफ़ेस अमूर्त विधियों और स्थिर स्थिरांक का एक संग्रह है। जैसा कि आप एक इंटरफ़ेस में जानते हैं, प्रत्येक विधि सार्वजनिक और सार है, लेकिन इसमें कोई निर्माता नहीं है। अमूर्तता के साथ, इंटरफ़ेस जावा में कई उत्तराधिकार प्राप्त करने में भी मदद करता है।
ध्यान दें: आप इंटरफेस का उपयोग करके 100% अमूर्तता प्राप्त कर सकते हैं।

कैसे जावा में एक शक्ति के लिए कुछ बढ़ाने के लिए

मूल रूप से, इंटरफ़ेस रिक्त निकायों के साथ संबंधित तरीकों का एक समूह है। आइए हम इसके संबंधित तरीकों के साथ आकृति के इंटरफ़ेस का उदाहरण लेते हुए इंटरफेस को समझें।

सार्वजनिक इंटरफ़ेस आकार {सार्वजनिक शून्य ड्रा () सार्वजनिक डबल गेटआरे ()}

इन तरीकों को हर 'आकार' में मौजूद होना चाहिए, है ना? लेकिन उनका काम अलग होने वाला है।

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

अब, इस कार्यक्षमता पर ध्यान दें कि आप इस इंटरफ़ेस को कैसे लागू कर सकते हैं।
इस इंटरफ़ेस को लागू करने के लिए, आपकी कक्षा का नाम किसी भी आकार में बदल जाएगा, 'सर्किल' बता दें। इसलिए, क्लास इंटरफ़ेस को लागू करने के लिए, मैं 'कार्यान्वयन' कीवर्ड का उपयोग करूँगा:

सार्वजनिक वर्ग सर्किल लागू करता है आकार {निजी डबल त्रिज्या पब्लिक सर्कल (डबल आर) {this.radius = r} शून्य ड्रा () {System.out.println ('ड्रॉइंग सर्कल')} सार्वजनिक डबल गेटआरे () {रिटर्न मैथ / आई * this.radius * this.radius} public double getRadius () {return this.radius}} पब्लिक क्लास टेस्ट {public static void main (String args []) {शेप c = नया सर्कल (8) c.draw (सिस्टम) out.println ('क्षेत्र =' + c.getArea ())}}

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

जावा में एक टोकन क्या है

वास्तविक समय जावा में अमूर्तता का उदाहरण

मान लीजिए कि हमारे पास एक इंटरफेस के रूप में स्पोर्ट है। यहां, 'बैडमिंटन' और 'फुटबॉल' नामक कक्षाओं द्वारा कार्यान्वयन प्रदान किया जाएगा। वास्तविक परिदृश्य में, अंतिम उपयोगकर्ता को कार्यान्वयन वर्ग के बारे में जानकारी नहीं होगी। इसलिए, कारखाना विधि द्वारा कार्यान्वयन वर्ग की एक वस्तु प्रदान की जा सकती है। कुछ कसौटी के आधार पर कार्यान्वयन वर्ग की एक वस्तु बनाने के लिए फैक्टरी विधि का उपयोग किया जा सकता है।
आइए इसे लागू करें और Sport.java नामक एक इंटरफ़ेस बनाएं।

पब्लिक इंटरफेस स्पोर्ट {void play ()} //, अब हम 'बैडमिंटन' नाम की क्लास बनाएंगे पब्लिक क्लास बैडमिंटन इम्प्लॉइज स्पोर्ट {@ ऑवरराइड पब्लिक वेड प्ले () {System.out.println ('बैडमिंटन खेलना)}} // इसके बाद हम अपना अंतिम वर्ग 'फ़ुटबॉल' सार्वजनिक वर्ग फ़ुटबॉल लागू करें खेल {@Override public void play () {System.out.println ('फुटबॉल खेलना')} बनाएँ

अंतिम चरण 'SportInterface' नाम से एक मुख्य वर्ग बनाना है।

सार्वजनिक स्पोर्टइंटरफेस {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {// आपका कोड यहाँ}}

जब आप उपरोक्त कार्यक्रम को निष्पादित करते हैं, तो आउटपुट नीचे दिखाया जाएगा:

बैडमिंटन खेलना ------------------- फुटबॉल खेलना

मुझे आशा है कि आप लोग इंटरफ़ेस के साथ स्पष्ट हैं और आप इसका उपयोग करके अमूर्तता कैसे प्राप्त कर सकते हैं। अब, इस लेख का समापन Abstraction और Encapsulation की तुलना करके करें।

एब्सट्रैक्ट बनाम एनकैप्सुलेशन

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

मुझे उम्मीद है कि आप एब्सट्रैक्शन और एनकैप्सुलेशन के बीच अंतर को समझ गए होंगे। इसके साथ, हम Java Abstraction ब्लॉग पर समाप्त होते हैं। आशा है, आपको यह जानकारीपूर्ण लगी और इसने आपके ज्ञान को जोड़ने में मदद की। यदि आप जावा के बारे में अधिक जानना चाहते हैं, तो आप इसका उल्लेख कर सकते हैं

अब जब आप समझ गए हैं कि 'Java Abstraction क्या है', तो देखें 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का का जावा J2EE और SOA प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक सिर शुरू करने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

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