2012-09-17 42 views
5

"हैलो, एंड्रॉयड" पुस्तक पढ़ते समय, मैंने देखा है कि:सार्वजनिक ऑनक्रेट(), या संरक्षित() पर संरक्षित?

onCreate(Bundle savedInstanceState) विधि के साथ प्रत्येक जावा फ़ाइल, का कार्यक्रम मुख्य गतिविधि में छोड़कर संरक्षित पहुँच संशोधक है [है: public void onCreate(Bundle savedInstanceState)] ।

कार्यक्रम के मुख्य गतिविधि पर onCreate विधि public क्यों है, लेकिन अन्य सभी स्थानों protected?

+0

आप सभी गतिविधियों में ** सार्वजनिक ** एक्सेस संशोधक का उपयोग कर सकते हैं .... –

+0

क्या आप हमें बता सकते हैं कि वह कार्यक्रम क्या करता है? –

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद। – Soroor

उत्तर

0

यह protected भी हो सकता है। इसके बारे में कुछ भी महत्वपूर्ण या बुद्धिमान नहीं है।

1

आप किसी विधि की दृश्यता बदल सकते हैं। क्या आप ऐसा नहीं कर सकते है:() दृश्यता को कम (एक सार्वजनिक विधि सीमित करें), एक निजी विधि (यह सार्वजनिक करने)

2

onCeate का उपयोग गतिविधि वस्तु से इसके बारे में फोन करने से बचने के लिए सुरक्षित है।

MyActivity activity = new MyActivity(); 
activity.onCreate(args); // which doesn't make sense because activity is not yet created 

के बाद से इस विधि केवल जब गतिविधि बनाया जाता है कहा जाता है, यह बुला खुद के सबसे शायद आप एक NullPointerException दे देंगे क्योंकि गतिविधि अभी तक नहीं बनाया गया है। S/O Post

0

विधि को सार्वजनिक करने का कोई कारण नहीं है (लेकिन ऐसा करने से कुछ भी प्रभावित नहीं करता है)। आपको वैसे भी इसे मैन्युअल रूप से कॉल नहीं करना चाहिए।

रास्ता IntelliJ विचार करके सार्वजनिक onCreate साथ गतिविधि टेम्पलेट है। पुस्तक में यह विधि सार्वजनिक हो सकती है।