2013-05-28 6 views
10

मुझे (नामकरण सम्मेलन) के साथ भ्रमित हो गया है, वे अंडरस्कोर _ का उपयोग परिवर्तनीय नामों और विधि नामों में उनके प्रारंभिक अक्षर के रूप में करते हैं। उदाहरण के लिए _sampleVariable और _getUserContext()। क्या इसका उपयोग करने के लिए कोई स्पष्टीकरण दे सकता है?वेरिएबल और विधि नामों में अंडरस्कोर का उपयोग

+0

लिंक – MaheshVarma

+0

के लिए @RishikeshDhokare धन्यवाद जाना के माध्यम से इस पहचान को http://stackoverflow.com/questions/150192/using-underscores-in-java-variables-and-method-names – RishikeshDhokare

+1

इसका बस एक कोडन शैली 'सदस्य चर।' लेकिन मैं 'camelCase' का उपयोग करने का सुझाव देता हूं, अंडरस्कोर नहीं। [** सम्मेलन नामकरण के लिए ओरेकल पीडीएफ **] (http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) –

उत्तर

6

चर के अलावा जावा Naming Convetions

देखें, सभी उदाहरण, वर्ग, और वर्ग स्थिरांक लोअरकेस पहले अक्षर के साथ मिश्रित मामले में कर रहे हैं। आंतरिक शब्द पूंजी अक्षरों से शुरू होते हैं। वेरिएबल नाम अंडरस्कोर _ या डॉलर साइन $ अक्षरों से शुरू नहीं होना चाहिए, भले ही दोनों की अनुमति है।

कक्षाओं के स्थिरांक घोषित चर के नाम और एएनएसआई स्थिरांक अंडरस्कोर ("_") से अलग शब्दों के साथ सभी अपरकेस होना चाहिए। (एएनएसआई स्थिरांक डिबगिंग में आसानी के लिए बचा जाना चाहिए,।)

2

आम तौर पर सभी बड़े स्थिरांक कि आम तौर पर (ऑल-स्टार लेकिन ALL_STARS) अन्तिम होता है में, नहीं किया जाना चाहिए विभाजक के रूप में छोड़कर।

बिल्कुल सामान्य रूप से अपेक्षित नहीं होने पर, अंडरस्कोर जेनरेट कोड में प्रचुर मात्रा में है। यह कुछ पुराने कोड में भी पाया जा सकता है, इसका उपयोग जारी रखने का कारण नहीं है।

5

कभी-कभी लोग अंडरस्कोर का उपयोग यह इंगित करने के लिए करते हैं कि उनका चर या विधि निजी है। मुझे ऐसा करने का तरीका पसंद नहीं है। मेरा सुझाव है कि आप camelCase का भी उपयोग करें।

2

आमतौर पर _ वर्ग स्तर के निजी चर के रूप में उनका प्रतिनिधित्व करने के लिए चर में उपयोग किया जाता है।

+1

शायद ____python____ में – ACV

0

कभी कभी यह कुछ परिणाम के बारे में अन्य प्रोग्रामर चेतावनी देने के लिए उपयोगी है

, रॉबर्ट सी मार्टिन द्वारा पुस्तक स्वच्छ कोड का हवाला देते हुए।

उदाहरण

// Don't run unless you 
// have some time to kill. 
public void _testWithReallyBigFile() { 
writeLinesToFile(10000000); 
response.setBody(testFile); 
response.readyToSend(this); 
String responseString = output.toString(); assertSubString("Content-Length: 1000000000", responseString); assertTrue(bytesSent > 1000000000); 
} 

आजकल, ज़ाहिर है, हम बंद @Ignore एक उपयुक्त व्याख्यात्मक तार के साथ विशेषता का उपयोग करके परीक्षण का मामला बारी चाहते हैं। @ इग्नोर ("दौड़ने में बहुत लंबा समय लगता है")। लेकिन जुनीट 4 से पहले के दिनों में, विधि नाम के सामने एक अंडरस्कोर डालने का एक आम सम्मेलन था।

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