with - polymorphism in java




जावा में एब्स्ट्रक्शन बनाम Encapsulation (2)

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

उदाहरण के लिए मेरे पास Vehicle वर्ग हो सकता है। एक Car एक Vehicle से Vehicle , जैसे Motorbike । मैं पहियों, यात्रियों आदि की संख्या के लिए प्रत्येक Vehicle पूछ सकता हूं और यह जानकारी Cars और Motorbikes से आम के रूप में समझा और पहचान की गई है।

मेरे कोड में मैं अक्सर सामान्य तरीकों के माध्यम से Vehicles से निपट सकता हूं go() , stop() इत्यादि। जब मैं बाद में एक नया वाहन प्रकार जोड़ता हूं (उदाहरण के लिए Scooter ) मेरा अधिकांश कोड इस तथ्य से अनजान रहेगा, और कार्यान्वयन Scooter अकेले Scooter विशिष्टताओं के बारे में चिंता करता है।

संभावित डुप्लिकेट:
एब्स्ट्रक्शन वीएस सूचना छुपा वीएस Encapsulation

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

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

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

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

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

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


सरल शब्दों में: कार्यान्वित करने का निर्णय लेने पर आप अमूर्त कार्य करते हैं। आपने जो कुछ भी लागू किया है उसे छुपाते समय आप encapsulation करते हैं।







concept