2009-10-17 14 views
27

में जावा में समान रूप से "अन्य" ऑब्जेक्ट के अपने निजी चर का उपयोग क्यों कर सकता हूं, जावा में बराबर (ऑब्जेक्ट ओ) विधि में मैं पास किए गए ऑब्जेक्ट के निजी चर का उपयोग कर बिना इसके सार्वजनिक गेटर्स।मैं अपने बराबर (ऑब्जेक्ट ओ) विधि

public boolean equals(Object o){ 
    ... 
    MyObject other = (MyObject)o; 
    return getProp() == other.prop; 
} 

वह कैसा है?

उत्तर

40

निजी डेटा किसी भी उस वर्ग के उदाहरण तक पहुंच योग्य है, भले ही कक्षा ए का एक उदाहरण ए के दूसरे उदाहरण के निजी सदस्यों तक पहुंच रहा हो। यह याद रखना महत्वपूर्ण है कि एक्सेस संशोधक (निजी, संरक्षित, सार्वजनिक) कक्षा एक्सेस को नियंत्रित कर रहे हैं, उदाहरण एक्सेस नहीं है।

+0

अहह, मैं देखता हूं, मैं जेएलएस में इसकी तलाश करूँगा –

1

संभावित उत्तर यह है कि दृश्यता मॉडल के डिजाइनर मानते हैं कि कक्षा में काम करने वाले किसी भी डेवलपर को पूरी कक्षा के कार्यान्वयन को मास्टर करना है।

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

संबंधित मुद्दे