क्यों वे जावा में एक ही संशोधक और सी # करने के लिए अलग अलग अर्थ बनाया है?
सादगी और अलग-अलग पहुंच अधिकारों को सटीक रूप से निर्दिष्ट करने की क्षमता के बीच एक विकल्प बनाना था। जावा के रचनाकारों द्वारा (और बाद में) सी # के रचनाकारों द्वारा विभिन्न विकल्प किए गए थे।
मैं सी # की रक्षा कैसे कर सकता हूं (एक्सेस कक्षा या युक्त कक्षा से व्युत्पन्न प्रकारों तक सीमित है।) जावा में?
आप नहीं कर सकते। जावा इस बिंदु पर अधिक सीमित है।
लेकिन आपको शायद protected
कीवर्ड के उपयोग को सीमित करना चाहिए क्योंकि दोनों उपयोगों में इसका मतलब सामान्य encapsulation सिद्धांत को तोड़ना है। यह उपयोग कभी-कभी उपयोगी होता है, क्योंकि बहुत सख्त भाषा का अर्थ बहुत बेकार कोड हो सकता है, लेकिन ऐसा कुछ भी न करें जो बहुत बंधे और बदलना और बनाए रखना मुश्किल हो। कक्षाओं को ओवरराइड करने के लिए आंतरिक क्षेत्रों या विधियों तक पहुंच देना अक्सर इसका मतलब है कि आपके पास बहुत अधिक कार्यान्वयन युग्मन (रखरखाव के लिए पदानुक्रम पर संरचना पसंद करते हैं) के साथ भारी पदानुक्रम है।
ध्यान दें कि किसी भी एक्सेस कंट्रोल संशोधक के बिना घोषित एक चर या विधि उसी पैकेज में किसी भी अन्य वर्ग के लिए उपलब्ध है। मेरी राय में, यह किसी भी पैकेज के उप-वर्गों द्वारा पहुंच की अनुमति देने से अधिक है।
Here's the complete grid:
स्रोत
2012-09-13 07:06:32
"कुछ ऐसा करने के लिए सावधान रहें जो बहुत बंधे और बदलना और बनाए रखना मुश्किल हो"। मेरी समझ में नहीं आया। इसमें संशोधक कैसे भूमिका निभाता है? – Shashwat
जब आपके पास एक आंतरिक क्षेत्र तक पहुंचने वाले उप-वर्ग हैं, तो आपके पास सुपरक्लस के कार्यान्वयन को बदलने के लिए एक मजबूत युग्मन है। यह उन समस्याओं में से एक है जो encapsulation से बचने में मदद करता है। –
समझ गया। धन्यवाद :) – Shashwat