2012-10-08 12 views
5

में 'तर्क' का अर्थ क्या है, मैं पिछले 2 दिनों के लिए मूल जावा प्रोग्रामिंग सीखने की कोशिश कर रहा हूं, और मुझे एक समस्या का सामना करना पड़ा जो मैं निम्नलिखित कोड को देखते हुए अंजीर नहीं कर सकता:जावा में मूल शुरुआती: जावा

class DayCounter { 
    public static void main(String[] arguments) { 

     int yearIn = 2008; 
     int monthIn = 1; 
     if (arguments.length > 0) 
      monthIn = Integer.parseInt(arguments[0]); 
     if (arguments.length > 1) 
      yearIn = Integer.parseInt(arguments[1]); 
     System.out.println(monthIn + "/" + yearIn + " has " 
      + countDays(monthIn, yearIn) + " days."); 
    } 
} 

मैं लाइन if (arguments.length > 0) को समझ नहीं सकता arguments क्या मतलब है? मूल्य कहां से आया?

+0

"सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क)" (बस अपने कक्षा दिवस काउंटर के तहत) – User404

+1

[यहां देखें] (http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html) । यह आपको बेहतर सोल्यूशन देगा – gks

उत्तर

1

तर्क पैरामीटर की एक सूची है जो आपके जावा प्रोग्रामम को स्टार्ट अप पर पास की जा सकती है।

अगर (तर्क। लम्बाई> 0) जांच करता है कि क्या कोई तर्क प्रदान किया गया है।

अन्यथा आप एक खाली सरणी तक पहुंचने और सीमा अपवाद से बाहर निकलने और अनुक्रमणित करने का प्रयास करेंगे।

इसके अलावा वहां ट्यूटोरियल की भरपूरता है, जो आपकी मदद कर सकती है।

Oracle's essentials guide, here about CMD Line Arguments पर एक नज़र डालें।

2

वे कमांड प्रॉम्प्ट से आते हैं। जब आप एक प्रोग्राम चलाने के लिए शुरू करते हैं, तो आप कह सकते हैं:

java program arg1 arg2 ...argN 

तर्क प्रोग्राम नाम के तुरंत बाद जाते हैं।

4

arguments आपके जावा प्रोग्राम को दिए जाने वाले कमांड लाइन विकल्प हैं। वे एक सरणी में संग्रहीत हैं इसलिए arguments.length पर कॉल करने से आपके प्रोग्राम में कमांड लाइन इनपुट की संख्या मिलती है।

वे निष्पादन

java program argument1, argument2, argument3 

पर इस तरह में पारित कर रहे हैं इस मामले arguments.length में 3 वापसी होगी के रूप में वहाँ 3 आदेश पंक्ति तर्क हैं।

1

तर्क मुख्य विधि

public static void main(String[] arguments) 

इस मामले में करने के लिए पारित हो जाता है यह मान इस विधि को पारित किया जा सकता है कि की एक सरणी का मतलब है। आम तौर पर यह तर्क है कि आप कमांड लाइन से या शॉर्टकट से किसी प्रोग्राम में जाते हैं और फिर आप तर्क प्रवाह को बदलने के लिए प्रोग्राम में उनका उपयोग कर सकते हैं।

7

मैं लाइन समझ में नहीं कर सकते हैं "अगर (arguments.length> 0) क्या करता है" तर्कों "मतलब जहां था कि यह मूल्य

से आया यह विधि घोषणा से आया है?

public static void main(String[] arguments) { 

घोषणा करता है कि एक पैरामीटरarguments कहा जाता है। एक सामान्य विधि कॉल के लिए, फोन करने वाले तर्क निर्दिष्ट करता है, और कहा कि प्रारंभिक हो जाता है पैरामीटर का मूल्य। उदाहरण के लिए:

int foo(int x) { 
    System.out.println(x); 
} 
... 
foo(10); 

यहाँ, 10 तर्क विधि करने के लिए है, तो यह x पैरामीटर के लिए प्रारंभिक मूल्य है।

अब एक public static void विधि कहा जाता है जावा में main एक प्रवेश बिंदु है - तो जब आप चलाएँ:

java MyClass x y z 

JVM एक सरणी आदेश पंक्ति तर्क युक्त के साथ अपने main प्रणाली को बुलाती है - यहां, यह "x", "y" और "z" मानों के साथ लंबाई 3 की सरणी होगी।

अधिक जानकारी के लिए, जावा ट्यूटोरियल के प्रासंगिक बिट देखें:

3

इस मामले बहस में चर स्ट्रिंग्स आप के रूप में प्रदान की सरणी के लिए इस्तेमाल किया नाम है निष्पादन पर इनपुट,

यानी

java DayCounter 1 2010 

निम्नलिखित कोड अंश में:

public static void main(String[] arguments) 

String[]arguments के एक चर नाम के साथ तार की एक सरणी का मतलब है। जावा डिफ़ॉल्ट रूप से मुख्य के लिए इस फ़ंक्शन प्रोटोटाइप का उपयोग करता है। यहाँ एक ट्यूटोरियल के लिए देखें: http://docs.oracle.com/javase/tutorial/getStarted/application/index.html

तो जब आप arguments (arguments.length) में length संदर्भ है, तो आप देख रहे हैं "अंदर" (सरणी की लंबाई जावा स्ट्रिंग्स का एक अंतर्निहित फ़ंक्शन का उपयोग करने के लिए पाने के तार की सरणी इसलिए)

1

पहले कोड के अर्थ को समझें। यह आपको एक वर्ष के किसी दिए गए महीने में दिनों की संख्या बताता है। तो जाहिर है जब आप कोड चलाते हैं तो आपको एक वर्ष मूल्य और महीने मूल्य मान दिए गए मानों के रूप में होना चाहिए।

इस मामले में कोड निष्पादन समय के दौरान प्रदान किए गए महीने मूल्य और वर्ष मूल्य तर्क बन जाते हैं। इस मामले में शब्द "तर्क" का उपयोग इस तरह किया जाता है लेकिन आप एक चर नाम के लिए एक्स या वाई या xyz का उपयोग कर सकते हैं, जैसा कि आप जानते हैं।

जावा स्ट्रिंग सरणी के रूप में तर्क स्वीकार करता है। तो उन्हें इंटीजर के रूप में उपयोग करने से पहले आपको उन्हें पार्स करने की ज़रूरत है, यही उपर्युक्त कोड में किया गया है।

जैसे

class WelcomeYouself{ 

    public static void main(String[] args){ //Here insted of arguments,the word args is used. 

    System.out.println("Hello " + args[0]); 
    } 
} 

अब जब आप इस चलाने आप तर्क के रूप में अपने खुद के नाम गुजरती हैं।

java WelcomeYourself Feynman; 

// This how you run or execute the java code passing your name as the "argument". Of course it is presumed you are Feynman. 
2

- आमतौर पर मानकों और तर्क interchangeably उपयोग किया जाता है, लेकिन वे अलग हैं।उपरोक्त कोड चर s लाइन public void go(String s)Parameter है में टाइप String की है जिसमें -

public class Test{ 


    public void go(String s){ 


    } 

    public static void main(String[] args){ 

     Test t = new Test(); 
     t.go("Hello"); 

    } 

} 

:

मैं एक उदाहरण लेते हैं यह समझाने के लिए होगा।

- कहाँ "Hello" लाइन t.go("Hello") एक Argument है में प्रकार स्ट्रिंग की है जो के रूप में।

-विधि परिभाषा या घोषणा में तत्वों Parameters, जहां तत्वों विधि कॉल में पारित के रूप में Arguments कर रहे हैं।

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