为什么不在Java main方法中使用'params'数组?

时间:2011-10-21 18:33:24

标签: java

作为Java新手,我理解传递给方法的值称为参数,接收方法定义中的值的变量称为参数。

现在,我在哪里看到用main方法编写的Java类,方法签名说

public static void main(String args []) {}

例如。 http://download.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

虽然我可以提供任何变量名称,但如果他们给出了 params [] 而不是args [],那是不是很合理?

任何理论?

6 个答案:

答案 0 :(得分:5)

老实说,没有理由你无论如何都不能称呼它。称之为args只是惯例。我不建议除了args之外调用它,因为这几乎是每个Java程序员所期望的。但没有任何迹象表明你无法重命名它。

class BadArgs {
    public static void main(String params[]) {
        System.out.println(params[0]);
    }
}

C:\Documents and Settings\glowcoder\My Documents>javac BadArgs.java

C:\Documents and Settings\glowcoder\My Documents>java BadArgs Hello!
Hello!

答案 1 :(得分:4)

这个名字很合适。 args是一个参数,其值是命令行参数的数组。

答案 2 :(得分:4)

首先,这是一个在许多语言中相当规范的名称。例如在C中,您通常会将main定义为:

int main(int argc, char *argv[]);

(其中argc是计数,argv是指向每个参数的指针数组。 Java模仿了这一点。

我只能猜测为什么规范名称是args而不是params。也许是因为如果你想知道,例如第0个arg,你引用args[0]

答案 3 :(得分:4)

传递给函数的值是参数。包含这些参数的命名变量称为参数。因此,如果您想要模糊,请在每种方法中为参数命名arg1arg2是完全有效的。

这个问题的答案可能会更清楚(或不):

What's the difference between an argument and a parameter?

答案 4 :(得分:1)

它可能真的是两种方式,args与params几乎相同,我猜他们称之为args,因为它的命令行“args”是参数。

答案 5 :(得分:0)

main()是一种特殊方法。和args []指的是当程序从程序用户启动时,main函数接收命令行参数。