10 गलतियों को जावा प्रोग्रामिंग से बचने के लिए - डमीज

10 गलतियों को जावा प्रोग्रामिंग से बचने के लिए - डमीज

यहां आसानी से गलतियों से बचने के लिए 10 त्वरित अनुस्मारक हैं, जब आप जावा के साथ एंड्रॉइड ऐप्स प्रोग्रामिंग कर रहे हैं कोड। जब आप इस चेकलिस्ट के माध्यम से चलाते हैं, तो अपना जावा प्रोग्राम लिखना बहुत आसान और चिकना होगा

बड़े अक्षरों को रखें जहां वे हैं

जावा एक केस-संवेदी भाषा है, इसलिए आपको वास्तव में अपने पी एस और क्यू एस- को हर दूसरे पत्र के साथ याद रखना होगा वर्णमाला का जैसा कि आप जावा प्रोग्राम बनाते हैं, यहाँ कुछ अवधारणाएं हैं:

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

  • आपको यह भी सुनिश्चित करने की ज़रूरत है कि आपके द्वारा बनाए गए नाम पूरे कार्यक्रम में एक ही तरीके से पूंजीकृत हो जाएंगे। यदि आप एक myAccount चर घोषित करते हैं, तो आप इसे MyAccount, myaccount, या Myaccount के रूप में नहीं देख सकते हैं यदि आप चर नाम को दो अलग-अलग तरीकों से कैपिटल करते हैं, तो जावा सोचता है कि आप दो पूरी तरह से भिन्न चर की बात कर रहे हैं।

  • एक स्विच स्टेटमेंट से बाहर तोड़ना

यदि आप स्विच स्टेटमेंट से बाहर नहीं आते हैं, तो आप फॉल-थ्रू को प्राप्त करते हैं। उदाहरण के लिए, यदि रोल का मान 7 है, तो निम्न कोड सभी तीन शब्द प्रिंट करता है - जीत, जारी रखता है, और खो जाता है:

स्विच (रोल) {केस 7: सिस्टम। बाहर। println ( "जीत"); मामला 10: सिस्टम बाहर। println ( "जारी रखें"); मामला 12: सिस्टम बाहर। println ("हार");}

 डबल बराबर चिह्न वाले मूल्यों की तुलना करें 

जब आप एक दूसरे के साथ दो मानों की तुलना करते हैं, तो आप एक डबल बराबर चिह्न का उपयोग करते हैं। रेखा

यदि (इनपुटनंबर == यादृच्छिक संख्या)

 सही है, लेकिन पंक्ति 

यदि (inputNumber = randomNumber)

 सही नहीं है 

घटनाओं को संभालने के लिए श्रोताओं को जोड़ें

जब उपयोगकर्ता एक विजेट पर क्लिक करता है, जब एक एनीमेशन समाप्त होता है या कुछ और होता है, तो आप जानना चाहते हैं, ताकि आप श्रोताओं को बना सकें:

सार्वजनिक वर्ग मुख्य गतिविधि गतिविधि को बढ़ाता है

 लागू करता है {...}  जब आप श्रोताओं बनाते हैं, तो आपको श्रोताओं को सेट करने के लिए याद रखना चाहिए:  ImageView widget =========================================================================================================== < नया ImageView (यह); विजेट। 

setOnClickListener

 (this); ... अल्फा एनीमेशन एनीमेशन = नया अल्फा एनीमेशन (0. 0 एफ, 1. 0 एफ); एनीमेशन।  setAnimationListener  (this); ...  यदि आप कॉल को ऑनक्लिकलिस्ट सेट करने के लिए भूल जाते हैं, तो आप विजेट पर क्लिक करते समय कुछ भी नहीं होता है विजेट पर क्लिक करने से दूसरी बार मदद नहीं मिलती  

आवश्यक कन्स्ट्रक्टरों को परिभाषित करें

जब आप

सार्वजनिक तापमान (डबल संख्या)

के रूप में पैरामीटर के साथ एक कन्स्ट्रक्टर को परिभाषित करते हैं, तो जावा अब आपके लिए एक डिफॉल्ट पैरासेलेबल कन्स्ट्रक्टर नहीं बनाता है दूसरे शब्दों में, आप अब

 तापमान के कमरे में कॉल कर सकते हैं टेम्पलेट = नया तापमान (); 

जब तक आप स्पष्ट रूप से अपने खुद के पैरामीटरलेस तापमान कन्स्ट्रक्टर को परिभाषित नहीं करते

 गैर-स्थिर संदर्भों को ठीक करें 

यदि आप निम्न कोड को संकलित करने का प्रयास करते हैं, तो आपको एक त्रुटि संदेश मिलता है:

वर्ग WillNotWork {String greet = "Hello"; सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग एल्ग्स []) {सिस्टम। बाहर। println (ग्रीटिंग);}}

आपको एक त्रुटि संदेश मिलता है क्योंकि मुख्य स्थिर है, लेकिन ग्रीटिंग स्थिर नहीं है

 एक सरणी में सीमा के भीतर रहें 

जब आप दस घटकों के साथ एक सरणी घोषित करते हैं, तब घटक 0 से 9 के अनुक्रमित होते हैं। दूसरे शब्दों में, यदि आप

इंट अतिथि [] = नया इंट [10];

अतिथि अतिथि [9] के मेहमानों के लिए अतिथि मेहमानों [1], अतिथि [1], और इसी तरह, मेहमान लिखकर मेहमान के घटक का संदर्भ ले सकते हैं [9] आप मेहमानों को नहीं लिख सकते हैं [10], क्योंकि मेहमान सरणी के पास कोई सूचक नहीं है, 10 सूचकांक।
 नल संकेतों का अनुमान लगाना 

ये उदाहरण NullPointerException फेंकने की संभावना नहीं हैं, लेकिन वास्तविक जीवन जावा प्रोग्रामिंग में, आप उस अपवाद को हर समय देखें एक NullPointerException के बारे में आता है जब आप एक अभिव्यक्ति पर कोई विधि कॉल करते हैं जिसमें "वैध" मान नहीं होता है यहाँ एक सस्ता उदाहरण है:

सार्वजनिक वर्ग ThrowNullPointerException {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {String myString = null; प्रदर्शन (माइस्ट्रिंग);} स्थिर शून्य प्रदर्शन (स्ट्रिंग एस्ट्रिंग) {यदि (! एस्ट्रिंग में शामिल है ("गोपनीय")) {सिस्टम। बाहर। println (aString);}}}

डिस्प्ले पद्धति केवल अक्षर की एक स्ट्रिंग प्रिंट करता है यदि उस स्ट्रिंग में

 गोपनीय 

शब्द नहीं है समस्या यह है कि माइस्ट्रिंग वैरिएबल (और इस प्रकार aString पैरामीटर) किसी भी प्रकार की स्ट्रिंग का उल्लेख नहीं करता - खाली स्ट्रिंग (") के लिए भी नहीं जब कंप्यूटर कॉल करने के लिए aString पर पहुंचता है शामिल है, कंप्यूटर के लिए एक नल से संबंधित पद्धति के लिए लग रहा है। लेकिन शून्य कुछ नहीं है शून्य मान में कोई तरीका नहीं है तो आपको एक बड़ा नल पॉइंटर एक्सेप्शन मिलता है, और प्रोग्राम आपके चारों ओर क्रैश हो जाता है। इस प्रकार की आपदा से बचने के लिए, अपने कोड में किसी भी विधि कॉल के बारे में दो बार सोचें। यदि डॉट से पहले अभिव्यक्ति संभवतः नल हो सकती है, तो अपने प्रोग्राम में अपवाद-हैंडलिंग कोड जोड़ें:

प्रयास करें {if (! AString। में ("गोपनीय")) {सिस्टम। बाहर। println (aString);}} पकड़ (NullPointerException ई) {सिस्टम। बाहर। println ("स्ट्रिंग रिक्त है।");}

अनुमतियों का उपयोग करें

 कुछ ऐप्स को स्पष्ट अनुमति की आवश्यकता है उदाहरण के लिए, एक ऐप इंटरनेट पर ट्विटर के सर्वर से बात कर सकता है। यह तब तक काम नहीं करता जब तक कि आप एप के एंड्रॉइड मैनिफेन्स में कोई तत्व न जोड़ें। xml फ़ाइल: 

यदि आप तत्व को अपने एंड्रॉइड मैनिफेस्ट में जोड़ना भूल जाते हैं xml फ़ाइल, ऐप चहचहाना के सर्वरों के साथ संवाद नहीं कर सकता एक उपयोगी त्रुटि संदेश प्रदर्शित किए बिना ऐप विफल रहता है बहुत बुरा!

गतिविधि नहीं मिली

यदि आप अपने ऐप के लिए दूसरी गतिविधि बनाते हैं, तो आपको ऐप के एंड्रॉइड मैनिफेस्ट में एक नया तत्व जोड़ना होगा।xml फ़ाइल उदाहरण के लिए, एक एंड्रॉइड ऐप में दो गतिविधियां हो सकती हैं: मुख्य गतिविधि और MyListActivity

ग्रहण स्वत: एक

बनाता है यदि आप इस तत्व को जोड़ नहीं देते हैं, तो एंड्रॉइड MyListActivity वर्ग नहीं ढूँढ सकता, भले ही MyListActitivity जावा फ़ाइल ऐप के एक्लिप्स् प्रोजेक्ट डायरेक्टरी में है आपका ऐप किसी गतिविधि नॉटएफ़ाउंड अपवाद के साथ क्रैश करता है

और यह सब अंतर बनाता है