ऑब्जेक्ट उन्मुख प्रोग्रामिंग में सार्वजनिक, निजी और संरक्षित क्या हैं?वस्तु उन्मुख प्रोग्रामिंग में सार्वजनिक, निजी और संरक्षित क्या हैं?
उत्तर
वे पहुँच संशोधक कर रहे हैं और हमें Encapsulation लागू करने में सहायता (या जानकारी छुपा)। वे संकलक को बताते हैं कि अन्य वर्गों को फ़ील्ड या परिभाषित विधि को एक्सेस करना चाहिए।
private
- केवल वर्तमान वर्ग के पास फ़ील्ड या विधि तक पहुंच होगी।
protected
- केवल वर्तमान वर्ग और इस वर्ग के उपवर्गों (और कभी कभी भी एक ही पैकेज वर्ग) क्षेत्र या विधि के लिए उपयोग होगा।
public
- कोई भी वर्ग फ़ील्ड को संदर्भित कर सकता है या विधि को कॉल कर सकता है।
यह मानता है कि इन कीवर्ड का उपयोग किसी वर्ग परिभाषा के भीतर किसी फ़ील्ड या विधि घोषणा के हिस्से के रूप में किया जाता है।
ध्यान दें कि एक ही पैकेज के जावा सदस्यों में संरक्षित सदस्यों तक पहुंच सकते हैं –
हां, और जावा में चौथा एक्सेस संशोधक भी है जो खाली स्ट्रिंग है। किसी भी एक्सेस मॉडिफायर को किसी भी पैकेज-स्तरीय वर्ग से एक्सेस की अनुमति नहीं दी जाएगी। –
मुझे "कंपाइलर" भाग पसंद है, क्योंकि ज्यादातर भाषाओं को मैं जानता हूं कि सभी कार्यों/कक्षाओं को आसानी से रनटाइम पर पहुंचा जा सकता है उदाहरण के लिए .NET में प्रतिबिंब के माध्यम से। इसलिए मैं कहता हूं कि ये एक्सेस संशोधक मूल रूप से प्रोग्रामर के लिए कुछ चीजों को छिपाकर उसी कोड के साथ काम करने वाले अन्य प्रोग्रामर को मार्गदर्शन करने में मदद करते हैं। – merkuro
एक सार्वजनिक वस्तु वह है जो किसी अन्य वर्ग से पहुंच योग्य है। आपको बस यह पता होना चाहिए कि यह किस वस्तु है और आप इसे एक्सेस करने के लिए एक डॉट ऑपरेटर का उपयोग कर सकते हैं। संरक्षित मतलब है कि एक वर्ग और इसके उप-वर्गों में चर के लिए उपयोग होता है, लेकिन कोई अन्य वर्ग नहीं, उन्हें चर के साथ कुछ भी करने के लिए गेटर/सेटर का उपयोग करने की आवश्यकता होती है। एक निजी माध्यम है कि केवल उस वर्ग में चर के लिए सीधी पहुंच है, बाकी सब कुछ उस डेटा को एक्सेस या बदलने के लिए एक विधि/फ़ंक्शन की आवश्यकता है। उम्मीद है की यह मदद करेगा।
वे वास्तव में अवधारणाएं नहीं हैं बल्कि सी ++ और जावा जैसी लोकप्रिय भाषाओं में होने वाले विशिष्ट कीवर्ड हैं (कुछ अलग अर्थशास्त्र के साथ)।
अनिवार्य रूप से, वे कक्षाओं को सदस्यों (फ़ील्ड या फ़ंक्शंस) तक पहुंच प्रतिबंधित करने के लिए अनुमति देने के लिए हैं। विचार यह है कि किसी एक प्रकार में कम से कम एक प्रकार तक पहुंचने की अनुमति है, कम निर्भरता बनाई जा सकती है। यह एक्सेस ऑब्जेक्ट को उन वस्तुओं को प्रभावित किए बिना आसानी से बदला जा सकता है जो इसका संदर्भ देते हैं।
व्यापक रूप से बोलते हुए, सार्वजनिक मतलब है कि सभी को एक्सेस करने की अनुमति है, निजी माध्यम है कि केवल उसी वर्ग के सदस्यों को एक्सेस करने की अनुमति है, और संरक्षित साधन है कि उप-वर्गों के सदस्यों को भी अनुमति है। हालांकि, प्रत्येक भाषा अपनी खुद की चीजें जोड़ती है। उदाहरण के लिए, सी ++ आपको गैर-सार्वजनिक रूप से प्राप्त करने की अनुमति देता है। जावा में, वहाँ भी एक डिफ़ॉल्ट (पैकेज) पहुंच का स्तर है, और आंतरिक कक्षाओं के बारे में नियम हैं, आदि
ऑब्जेक्ट उन्मुख प्रोग्रामिंग में इसे समेटने के लिए, सब कुछ कक्षाओं और वस्तुओं में मॉडलिंग किया गया है। कक्षाओं में गुण और विधियां हैं। सार्वजनिक, निजी और संरक्षित कीवर्ड का उपयोग अन्य वर्गों या अन्य डीडी या अन्य अनुप्रयोगों से किसी वर्ग के इन सदस्यों (गुणों और विधियों) तक पहुंच निर्दिष्ट करने के लिए किया जाता है।
सभी तीन एक श्रेणी में उपयोग किए जाने वाले संशोधक और कीवर्ड का उपयोग कर रहे हैं। सार्वजनिक रूप से घोषित कुछ भी कक्षा के भीतर या कक्षा के बाहर किसी भी वस्तु द्वारा उपयोग किया जा सकता है, निजी में चर केवल कक्षा के भीतर वस्तुओं द्वारा उपयोग किया जा सकता है और सीधे पहुंच के माध्यम से बदला नहीं जा सकता है (क्योंकि यह मित्र कार्य जैसे कार्यों के माध्यम से चैनफ कर सकता है)। संरक्षित अनुभाग के तहत परिभाषित कुछ भी कक्षा और उनके बस व्युत्पन्न वर्ग द्वारा उपयोग किया जा सकता है।
इन निजी, सार्वजनिक और संरक्षित को एक्सेस विनिर्देशक कहा जाता है।
"सार्वजनिक" में कक्षा के अंदर या बाहर के सभी सदस्य चर का उपयोग करते हैं।
निजी में केवल कक्षा के अंदर के सदस्य चर का उपयोग कर सकते हैं।
कक्षा में सभी सदस्यों को "संरक्षित" में और कक्षा के सदस्यों (उप वर्ग) के सदस्य अपने मूल वर्ग से व्युत्पन्न चर के उपयोग कर सकते हैं।
- 1. स्कोप निजी, संरक्षित, और सार्वजनिक
- 2. सी ++ कक्षाएं (सार्वजनिक, निजी, और संरक्षित)
- 3. वस्तु उन्मुख डिजाइन सुझाव
- 4. PHP कक्षा Constants - सार्वजनिक, निजी या संरक्षित?
- 5. क्या .pem फ़ाइल में निजी और सार्वजनिक दोनों कुंजी हैं?
- 6. निजी और सार्वजनिक वर्गों में विभाजन संरचना?
- 7. पहलू उन्मुख प्रोग्रामिंग क्या है?
- 8. सार्वजनिक और निजी कुंजी कैसे भिन्न हैं?
- 9. रूबी में निजी/संरक्षित ब्लॉक?
- 10. कुछ 'शुद्ध' वस्तु-उन्मुख भाषाओं में से कुछ क्या हैं?
- 11. वस्तु उन्मुख डिजाइन सवाल
- 12. संरक्षित बनाम निजी विनाशक
- 13. निजी और संरक्षित सदस्य: सी ++
- 14. वस्तु उन्मुख सीएसएस
- 15. ऑब्जेक्ट उन्मुख प्रोग्रामिंग
- 16. एंड्रॉइड ऑब्जेक्ट उन्मुख प्रोग्रामिंग
- 17. पहलू उन्मुख प्रोग्रामिंग उदाहरण
- 18. आर में सार्वजनिक और निजी स्लॉट?
- 19. निजी या संरक्षित विरासत में वर्चुअल फ़ंक्शन
- 20. स्प्रिंग रू और पहलू उन्मुख प्रोग्रामिंग
- 21. संरक्षित/सार्वजनिक आंतरिक कक्षाएं
- 22. "निजी" और "संरक्षित आंतरिक" के बीच क्या अंतर है?
- 23. कन्स्ट्रक्टर को निजी या सार्वजनिक
- 24. निजी कन्स्ट्रक्टर और सार्वजनिक पैरामीटर कन्स्ट्रक्टर
- 25. पहलू उन्मुख प्रोग्रामिंग - 'cflow' क्या है?
- 26. निजी, सार्वजनिक और संरक्षित रचनाकारों के साथ अमूर्त वर्ग के बारे में कुछ प्रश्न
- 27. निजी या संरक्षित चर?
- 28. सार्वजनिक ऑनक्रेट(), या संरक्षित() पर संरक्षित?
- 29. भविष्य का अनुमान उन्मुख प्रोग्रामिंग
- 30. निजी या सार्वजनिक एमएसएमक्यू
+1, उन चीजों में से एक जो मुझे – fig
ग्रोक करने में थोड़ा मुश्किल मिला, क्या मुझे अंतिम जोड़ना चाहिए? –