2012-10-08 17 views
5

iv'e estado tratando de aprender la programación básica de Java durante los últimos 2 días, y me encontré con un problema que no puedo explicar mientras veo el siguiente código:Principiantes básicos en Java: ¿qué significa 'argumentos' en 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."); 
    } 
} 

No puedo entender la línea if (arguments.length > 0) ¿qué significa arguments? ¿De dónde vino el valor?

+0

"public static void main (String [] arguments)" (justo debajo del Class DayCounter) – User404

+1

[Ver aquí] (http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html) . le daría la mejor solución – gks

Respuesta

1

argumentos es una lista de los parámetros que se pueden pasar a su Java Programm en el arranque.

si (arguments.length> 0) comprueba si se ha proporcionado ningún argumento.

Como lo contrario se le intentando tener acceso a una matriz vacía y obtener e índice fuera de límites excepción.

También hay mucha variedad de tutoriales por ahí, que puede ayudarle.

Tenga una mirada en Oracle's essentials guide, here about CMD Line Arguments.

2

Ellos provienen de la línea de comandos. Cuando comience a ejecutar un programa, puede decir:

java program arg1 arg2 ...argN 

Los argumentos van inmediatamente después del nombre del programa.

4

arguments son las opciones de línea de comandos dados a su programa de Java cuando se ejecuta. Se almacenan en una matriz por lo que llamar al arguments.length le da la cantidad de entradas de línea de comando a su programa.

se pasan en este tipo en la ejecución

java program argument1, argument2, argument3 

En este caso arguments.length volvería 3 ya que hay 3 argumentos de línea de comandos.

1

argumentos se pasa en el método principal

public static void main(String[] arguments) 

en este caso significa una matriz de valores que se pueden pasar a este método. Por lo general, estos son los argumentos que pasa a un programa desde la línea de comandos o desde un acceso directo y luego puede usarlos en el programa para cambiar el flujo lógico.

7

No puedo entender la línea "si (arguments.length> 0) lo que hace 'argumentos' significan ¿de dónde venían de valor

Venía de la declaración del método:??

public static void main(String[] arguments) { 

que declara un parámetro llamada arguments. Para una llamada de método normal, la persona que llama especifica el argumento , y que se convierte en el primer valor del parámetro. Por ejemplo:

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

Aquí, 10 es el argumento con el método, por lo que es el valor inicial para el parámetro x.

ahora un método public static void llamados main en Java es un puntoentrada - por lo que cuando se ejecuta:

java MyClass x y z 

la JVM llama a su método main con una matriz que contiene los argumentos de la línea comando - aquí, sería una matriz de longitud 3, con los valores "x", "y" y "z".

Para más detalles, ver los bits correspondientes del tutorial de Java:

3

En este caso los argumentos es el nombre de la variable usada para array de Strings suministrados por el usuario como entrada en la ejecución,

es decir

java DayCounter 1 2010 

en el siguiente fragmento de código:

public static void main(String[] arguments) 

String[] significa una matriz de cadenas con un nombre de variable de arguments. Java usa este prototipo de función para main como predeterminado. Vea aquí un tutorial: http://docs.oracle.com/javase/tutorial/getStarted/application/index.html

Así que cuando se hace referencia length en arguments (arguments.length), que busca "dentro" de la gama de cadenas para encontrar la longitud de la matriz (utilizando una función incorporada de Java Cuerdas hacer así)

1

Primero Comprende el significado del código en la mano. Le informa la cantidad de días en un mes determinado de un año. Entonces, obviamente, cuando ejecuta el código, necesita tener un valor de año y el valor de mes como valores dados.

En este caso, el argumento es el valor del mes y el valor del año proporcionados durante el tiempo de ejecución del código. En este caso, la palabra "argumento" se usa como tal, pero puede usar x o y o xyz para nombrar una variable, como usted sabe.

Java acepta los argumentos como la matriz de cadenas. Entonces, antes de usarlos como Integer, debe analizarlos, eso es lo que se hizo en el código anterior.

Ej

class WelcomeYouself{ 

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

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

Ahora bien, cuando se ejecuta este a pasar su propio nombre como argumento.

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

- Por lo general, los parámetros y argumentos se utilizan indistintamente, pero son diferentes.

voy a tomar un ejemplo para explicar esto:

public class Test{ 


    public void go(String s){ 


    } 

    public static void main(String[] args){ 

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

    } 

} 

- En la variable código s que es de tipo String en la línea public void go(String s) es el Parameter.

- Donde como "Hello" que es de tipo String en la línea de t.go("Hello") es un Argument.

- Los elementos de definición método o declaración son Parameters, en tanto que los elementos aprobadas en la llamada al método son Arguments.

Cuestiones relacionadas