我在过去2天一直在努力学习基本的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.");
}
}
Run Code Online (Sandbox Code Playgroud)
我无法理解这条线if (arguments.length > 0)
是什么arguments意思?价值来自哪里?
我无法理解"if(arguments.length> 0)"是什么意思"参数"是什么意思?它的价值来自哪里?
它来自方法声明:
public static void main(String[] arguments) {
Run Code Online (Sandbox Code Playgroud)
这声明了一个名为的参数arguments.对于普通方法调用,调用者指定参数,并且该参数成为参数的初始值.例如:
int foo(int x) {
System.out.println(x);
}
...
foo(10);
Run Code Online (Sandbox Code Playgroud)
这里,10是方法的参数,因此它是x参数的初始值.
现在,main在Java中调用的公共静态void方法是一个入口点 - 所以当你运行时:
java MyClass x y z
Run Code Online (Sandbox Code Playgroud)
JVM main使用包含命令行参数的数组调用您的方法- 这里,它将是一个长度为3的数组,其值为"x","y"和"z".
有关更多详细信息,请参阅Java教程的相关位:
Arguments 是可以在启动时传递给 Java 程序的参数列表。
if (arguments.length > 0) 检查是否已提供任何参数。
否则,您将尝试访问空数组并获取和索引越界异常。
此外,还有大量的教程可以为您提供帮助。
| 归档时间: |
|
| 查看次数: |
24416 次 |
| 最近记录: |