Основные новички в Java: что означает "аргументы" в Java

iv'e пытался изучить базовое Программирование java в течение последних 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 в смысле? Откуда взялась эта ценность?

8 ответов


аргументы-это список параметров, которые могут быть переданы вашей программе Java при запуске.

if (аргументы.length > 0) проверяет, были ли предоставлены какие-либо аргументы.

в противном случае вы будете пытаться получить доступ к пустому массиву и получить и индексировать исключение за пределами границ.

также есть множество учебников, которые могут вам помочь.

посмотреть руководство Oracle essentials, здесь о CMD Line Доводы.


Я не могу понять строку " if (аргументы .length > 0) что означает" аргументы"? откуда взялась эта ценность?

это пришло из объявления метода:

public static void main(String[] arguments) {

что объявляет параметр под названием arguments. Для обычного вызова метода вызывающий объект указывает аргумент, и это становится начальным значением параметра. Например:

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

здесь, 10 аргумент к методу, так что это начальное значение для


arguments параметры командной строки, заданные вашей программе java при ее запуске. Они хранятся в массиве so calling arguments.length дает количество входных данных командной строки для вашей программы.

они передаются на исполнение

java program argument1, argument2, argument3

в этом случае arguments.length вернет 3, поскольку есть 3 аргумента командной строки.


в этом случае аргументы-это имя переменной, используемое для массива строк, которые вы предоставляете в качестве входных данных при выполнении,

то есть

java DayCounter 1 2010

в следующем фрагменте кода:

public static void main(String[] arguments)

String[] означает массив строк с именем переменной arguments. Java использует этот прототип функции для main по умолчанию. См. здесь учебник:http://docs.oracle.com/javase/tutorial/getStarted/application/index.html

поэтому, когда вы ссылка length на arguments (arguments.length), вы смотрите "внутри" массива строк, находя длину массива (используя встроенную функцию строк Java для этого)


они поступают из командной строки. Когда вы начинаете запускать программу, вы можете сказать:

java program arg1 arg2 ...argN

args идут сразу после имени программы.


- обычно параметры и аргументы используются взаимозаменяемо, но они разные.

я приведу пример, чтобы объяснить это:

public class Test{


   public void go(String s){


   }

   public static void main(String[] args){

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

    }

}

- в приведенной выше переменной кода s типа String в строке public void go(String s) - это Parameter.

- где "Hello", который имеет тип String в строку t.go("Hello") это Argument.

- Элементы в определение или объявление метода are Parameters, где как элементы передано в вызове метода are Arguments.


аргументы передаются в метод main

 public static void main(String[] arguments)

в этом случае это означает массив значений, которые могут быть переданы этому методу. Обычно это аргументы, которые передаются в программу из командной строки или ярлыка, а затем вы можете использовать их в программе для изменения логики.


сначала поймите значение кода под рукой. Он говорит вам, количество дней в данном месяце года. Поэтому очевидно, что при запуске кода вам нужно иметь значение года и значение месяца как заданные значения.

в этом случае значение месяца и значение года, указанные во время выполнения кода, становятся аргументом. В этом случае слово "аргумент" используется как таковое, но вы можете использовать x или y или xyz для имени переменной, как вы знаете.

Java принимает аргументы как Строковый массив. Поэтому, прежде чем использовать их как целое число, вам нужно проанализировать их, вот что было сделано в приведенном выше коде.

например

 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.