2012-10-08 10 views
5

iv state cercando di imparare la programmazione di base Java negli ultimi 2 giorni e ho riscontrato un problema che non riesco a visualizzare mentre visualizza il seguente codice:Principianti in Java: cosa significa "argomenti" in Java

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."); 
    } 
} 

Non riesco a capire la riga if (arguments.length > 0) cosa significa arguments? Da dove viene il valore?

+0

"public static void main (String [] argomenti)" (appena sotto la classe DayCounter) – User404

+1

[Vedere qui] (http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html) . darebbe la tua migliore soluzione – gks

risposta

1

argomenti è un elenco di parametri che possono essere passati al vostro Java Programma all'avvio.

se (arguments.length> 0) controlla se sono stati forniti tutti gli argomenti.

Altrimenti si cercherà di accedere a una matrice vuota e ottenere e indicizzare fuori limite.

Inoltre ci sono pleanty di tutorial là fuori, che ti può aiutare.

Dai un'occhiata alla Oracle's essentials guide, here about CMD Line Arguments.

2

Essi provengono dal prompt dei comandi. Quando inizi a eseguire un programma, puoi dire:

java program arg1 arg2 ...argN 

Gli argomenti vanno subito dopo il nome del programma.

4

arguments sono le opzioni della riga di comando dato al vostro programma Java quando viene eseguito. Sono memorizzati in un array, quindi chiamare arguments.length indica il numero di input da riga di comando per il programma.

Essi vengono passati in simili sull'esecuzione

java program argument1, argument2, argument3 

In questo caso arguments.length restituirebbe 3 come ci sono 3 di questi parametri.

1

argomenti viene passato nel metodo principale

public static void main(String[] arguments) 

in questo caso significa una matrice di valori che possono essere passati a questo metodo. Di solito questo è l'argomento che si passa a un programma dalla riga di comando o da una scorciatoia e quindi è possibile utilizzarli nel programma per modificare il flusso logico.

7

non riesco a capire la linea "if (arguments.length> 0) cosa significa 'argomenti' significare da dove è venuto da valore

Veniva dalla dichiarazione di metodo:??

public static void main(String[] arguments) { 

che dichiara un parametro chiamato arguments. Per una normale chiamata di metodo, il chiamante specifica il argomento, e che diventa l'iniziale valore del parametro. Ad esempio:

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

Qui, 10 è il tesi al metodo, quindi è il valore iniziale del parametro x.

Ora un metodo public static void chiamato main in Java è un punto ingresso - in modo che quando si esegue:

java MyClass x y z 

la JVM chiama il metodo main con una matrice contenente gli argomenti della riga di comando - qui, sarebbe una matrice di lunghezza 3, con valori "x", "y" e "z".

Per maggiori dettagli, vedere i bit rilevanti del tutorial Java:

3

In questo caso gli argomenti è il nome della variabile utilizzata per la serie di stringhe forniti come input on execution,

ie

java DayCounter 1 2010 

nell'estratto seguente codice:

public static void main(String[] arguments) 

String[] significa una matrice di stringhe con un nome variabile di arguments. Java utilizza questo prototipo di funzione come principale come predefinito. Vedi qui per un tutorial: http://docs.oracle.com/javase/tutorial/getStarted/application/index.html

Quindi, quando si fa riferimento length a arguments (arguments.length), si sta cercando "dentro" la serie di stringhe trovare la lunghezza della matrice (utilizzando una funzione built-in di Java stringhe di fare so)

1

Prima capire il significato del codice in questione. Ti dice il numero di giorni in un dato mese di un anno. Quindi ovviamente quando si esegue il codice è necessario avere un valore annuale e il valore del mese come valori dati.

In questo caso il valore del mese e il valore dell'anno come previsto durante il tempo di esecuzione del codice diventano l'argomento. In questo caso la parola "argomento" è usata come tale ma puoi usare x o y o xyz per nominare una variabile, come sai.

Java accetta gli argomenti come matrice di stringhe. Quindi, prima di usarli come Integer è necessario analizzarli, questo è ciò che è stato fatto nel codice precedente.

Eg

class WelcomeYouself{ 

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

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

Ora, quando si esegue questo si passa il proprio nome come argomento.

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

- Di solito i parametri e gli argomenti sono usati come sinonimi, ma sono diversi.

prendo un esempio per spiegare questo:

public class Test{ 


    public void go(String s){ 


    } 

    public static void main(String[] args){ 

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

    } 

} 

- Nella variabile codice sopra s che è di tipo String nella linea public void go(String s) è il Parameter.

- Dove come "Hello" che è di tipo String nella linea t.go("Hello") è un Argument.

- Gli elementi di definizione metodo o dichiarazione sono Parameters, dove come gli elementi passati nel metodo chiamata sono Arguments.

Problemi correlati