वस्तु उन्मुख प्रोग्रामिंग में सार्वजनिक, निजी और संरक्षित क्या हैं?


जवाबों:


152

वे पहुँच संशोधक हैं और हमें एनकैप्सुलेशन (या सूचना छिपाने) को लागू करने में मदद करते हैं । वे संकलक को बताते हैं कि अन्य वर्गों को किस क्षेत्र या विधि के लिए परिभाषित किया जाना चाहिए।

private - केवल वर्तमान वर्ग के पास क्षेत्र या विधि तक पहुंच होगी।

protected - इस वर्ग के केवल वर्तमान वर्ग और उपवर्ग (और कभी-कभी समान-पैकेज वर्ग) के लिए क्षेत्र या विधि तक पहुंच होगी।

public - कोई भी वर्ग क्षेत्र को संदर्भित कर सकता है या विधि को कॉल कर सकता है।

यह मानता है कि इन खोजशब्दों को एक वर्ग परिभाषा के भीतर एक क्षेत्र या विधि घोषणा के भाग के रूप में उपयोग किया जाता है।


4
ध्यान दें कि एक ही पैकेज के जावा सदस्यों में संरक्षित सदस्यों तक पहुँच सकते हैं
लैंडन कुह्न

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

1
मुझे "संकलक" भाग पसंद है, क्योंकि अधिकांश भाषाएं जिन्हें मैं जानता हूं कि सभी फ़ंक्शन / कक्षाएं आसानी से रनटाइम पर .NET में प्रतिबिंबों के माध्यम से पहुंच सकते हैं। इसलिए मैं यह कहना चाहता हूं, कि ये एक्सेस मॉडिफ़ायर मूल रूप से प्रोग्रामर के लिए एक ही कोड के साथ काम करने वाले अन्य प्रोग्रामर्स को गाइड करने में मदद करते हैं।
मर्कुरो

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

1
C # एक्सेस-प्रोटेक्टेड-मेंबर्स-ऑफ-ही-पैकेज ट्रिक भी करता है। संक्षेप में, C # माइक्रोसॉफ्ट का जावा है
iGbanam

6

वे वास्तव में अवधारणाएं नहीं हैं, बल्कि विशिष्ट कीवर्ड हैं जो सी ++ और जावा जैसी लोकप्रिय भाषाओं में होते हैं (थोड़े अलग शब्दार्थ के साथ)।

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

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


6

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


1

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


1

ऊपर के रूप में, लेकिन गुणात्मक रूप से:

private - least access, best encapsulation
protected - some access, moderate encapsulation
public - full access, no encapsulation

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


0

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.