सन (और अब ओरेकल) ने जावा प्रोग्रामिंग लैंग्वेज के लिए कोड कन्वेंशन नामक एक दस्तावेज बनाए रखा । इसके लिए अंतिम अद्यतन '99 में था, लेकिन स्टाइल गाइड लाइन का सार रहता है।
अध्याय 9 में नामकरण सम्मेलनों को शामिल किया गया है।
एक पहचानकर्ता प्रकार के लिए 'स्थिरांक':
घोषित वर्ग कांस्टेबल और ANSI स्थिरांक के चर सभी के नाम अपरकेस ("_") द्वारा अलग किए गए शब्दों के साथ होने चाहिए। (डिबगिंग में आसानी के लिए ANSI स्थिरांक से बचा जाना चाहिए।)
दिए गए उदाहरण:
static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
एक और हालिया दस्तावेज़ में - वहाँ में फिसल गया। से चर (जावा ट्यूटोरियल> सीखना जावा भाषा> भाषा की मूल बातें :
यदि आपके द्वारा चुना गया नाम केवल एक शब्द का है, तो उस शब्द को सभी लोअरकेस अक्षरों में लिखें। यदि इसमें एक से अधिक शब्द हैं, तो प्रत्येक बाद वाले शब्द के पहले अक्षर को कैपिटल में लिखें। नाम gearRatio
और currentGear
इस सम्मेलन के प्रमुख उदाहरण हैं। यदि आपका वैरिएबल एक स्थिर मान संग्रहीत करता है, जैसे कि static final int NUM_GEARS = 6
, कन्वेंशन थोड़ा बदलता है, प्रत्येक अक्षर को कैपिटलाइज़ करता है और बाद के शब्दों को अंडरस्कोर कैरेक्टर के साथ अलग करता है। अधिवेशन द्वारा, अंडरस्कोर चरित्र का उपयोग कहीं और नहीं किया जाता है।
जावा के लिए कई स्थैतिक विश्लेषक इसे लागू करना चाहते हैं। उदाहरण के लिए चेकस्टाइल लागू होता है:
जाँचता है कि निरंतर नाम प्रारूप संपत्ति द्वारा निर्दिष्ट प्रारूप के अनुरूप हैं। एक स्थिर और अंतिम क्षेत्र या एक इंटरफ़ेस / एनोटेशन फ़ील्ड है, सिवाय serialVersionUID
और serialPersistentFields
। प्रारूप एक नियमित अभिव्यक्ति है और इसके लिए चूक है ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$
।
यह वास्तव में कोड लिखने वाले समुदाय के सम्मेलनों के लिए उकसाता है ... और आदर्श रूप से इसे समान रखते हुए।
ऊपर दिए गए उदाहरणों को static final
उन लोगों के रूप में दिया गया है जो संभवतः सी सम्मेलनों से लिए गए हैं #define
- जो सी की तरह, रनटाइम के बजाय संकलन के दौरान कोड में बदल दिए जाते हैं।
तब जो प्रश्न पूछा जाना चाहिए वह यह है कि "क्या यह एक व्यवहार की तरह है? या क्या यह एक बार लिखने वाले क्षेत्र की तरह व्यवहार कर रहा है?" - और फिर उसके अनुसार सम्मेलनों का पालन करना। इस तरह के एक प्रश्न के लिए लिटमस टेस्ट "यदि आप वस्तु को क्रमबद्ध करना चाहते हैं, तो क्या आप अंतिम क्षेत्र को शामिल करेंगे?" यदि उत्तर है कि यह एक स्थिर है तो इसे इस तरह से व्यवहार करें (और इसे क्रमबद्ध न करें)। दूसरी ओर, यदि यह उस वस्तु की स्थिति का हिस्सा है जिसे क्रमबद्ध करने की आवश्यकता होगी, तो यह स्थिर नहीं है।
जो भी हो, कोड शैली के साथ छड़ी करना महत्वपूर्ण है, हालांकि यह सही है या गलत है। एक परियोजना के भीतर असंगत सम्मेलनों से बदतर समस्याएं केवल उस चीज की तुलना में होती हैं जो आंख को बंद करती है। कुछ स्थिर विश्लेषण उपकरण प्राप्त करने पर विचार करें और स्थिरता बनाए रखने के लिए उन्हें कॉन्फ़िगर करें।