您的位置:首页 > 编程语言 > Java开发

java程序中String args[]起什么作用?

2011-12-14 10:28 531 查看
String args[]或者String[] args表示给主方法传一个字符串数组.

而args是一个字符串数组的变量名,不是关键字,

是arguments的缩写,只是一个默认名,一般都习惯性照写.

class Example{

public static void main(String args[]){

System.out.println("This is a simple Java program.");

}

}

疑问:

既然String args[]或者String[] args表示给主方法传一个字符串数组,那么System.out.println(args[]);为什么是错误,args[]不就是那个字符串This is a simple Java program吗?

String args[]与This is a simple Java program是什么关系?如果没关系,为什么程序中去掉String args[]会出现错误?

不带String args[]的main函数和带String args[]的main函数有什么区别吗?

答案:

String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行 java test a b c 时,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中调用你输入的这些变量了。

args[]不就是那个字符串This is a simple Java program吗?

-------完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是什么?

是不是这个:

This is a simple Java program

arg is XX

你还可以试试这样,在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?

是不是:

This is a simple Java program

arg is xx yy zz

如果没关系,为什么程序中去掉String args[]会出现错误?

--------之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。

在每个java程序中都有一个方法,public static void main(String[] args)方法,这个参数看了好久没看懂,但是细细看来,还是挺简单的,所有的方法的参数都是一个道理,而这个main方法有所不同的是:它是所有方法中最先运行的一个,所以没有其他方法给它传递参数,所以需要靠运行时命令行输入参数,所以String args,接收的是命令行的输入,

package Test_main;

public class Test_main {

public static void main(String[] args) {

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

System.out.println("args[1] is "+ args[1]);

System.out.println("args[2] is ");

}

}

写了一个测试程序,在Eclipse上运行,以往都是点击一下运行就行了,今天试了几次都不行,然后把放到命令行去运行(cmd那个),编译:javac Test.java 运行:java Test hello world 显示:

args[0] is hello

args[1] is world

args[2] is

是可以运行的,心想:Eclipse这么强大这个肯定可以办到,后来网上一查,其实很简单,就是打开Run里面的Debug configuration,里面的arguments里输入你想要输入的参数,然后保存,出来点击运行按钮,OK



结果出来了,显示的是刚刚输入的参数

args[0] is hello

args[1] is world

args[2] is

于是,昨天晚上想了很久的问题终于搞明白了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: