main(String[] args)中的String[] args什么意思

如题所述

String argv[]那只是main 函数的参数,表示字符串参数

java程序中String args[]起什么作用?
2007-07-13 12:52
在下面这个程序中String args[]起什么作用?我学过C++,String args[]与C++中的什么类似?如果是C++,想要输出字符串只要在下面写cout<<"...."<<endl;就可以了,void main()中的括号为空,而java中为什么要写String args[]呢?
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函数,所以当然出错了。
====================================================
String[] args是main函数的形式参数,,可以用来获取命令行用户输入进去的参数。如果你是java的初学者,编写一些简单的小程序是用不到它的,但是你在写程序的时候不管用的到用不到,声明main函数的时候一定要在括号里写上它,否则会报错。
我再给你举个用到String[] args的例子,可能语法上有错误,因为我手边没有java的书,而且我也只是个本科生,水平有限,权当给你理解用。
class Example
{
public void main(String[] args)
{
System.out.println(args[0]);
System.out.println(args[1]);
}
}
那么这个程序在执行的时候就需要向main函数传递形式参数的值,好让main函数完成打印的功能。
注:String[] args显示args是一个String类型的数组,args[0]、args[1]是头两个元素。
上面那个小程序执行的时候是这样:
首先,和其他的java程序一样,在命令提示符那个框框里输入
javac Example.java
再输入
java Example straul good
后面两个字符串随便写什么,它们作为实参传入main函数,straul传入args[0],good传入args[1]。
那么屏幕会出现:
straul
good
这和在main函数里调用其他函数并且向被调用函数传递参数是一样的道理,只不过传给main函数罢了。
这是我的理解,可能有问题,不过凭我学java的所得,我就是这么理解的。

参考资料:http://hi.baidu.com/fyears/blog/item/17c94e63d0f836620d33fafb.html

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-12-08
String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数。java 本身不存在不带String args[]的main函数,java程序中去掉String args[]会出现错误。
建个test类 在cmd中运行时输入java test a b c,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?
是不是:
This is a simple Java program
arg is a b c
***********test.java*******************
public class test {
public static void main(String[] args) {
System.out.println("This a java program!");
System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]);
}
}
********cmd*****************
C:\>javac test.java
C:\>java test a b c
This a java program!
arg isa b c

参考资料:百度知道

本回答被网友采纳
第2个回答  2017-12-27
String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数。java 本身不存在不带String args[]的main函数,java程序中去掉String args[]会出现错误。
建个test类 在cmd中运行时输入java test a b c,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?
是不是:
This is a simple Java program
arg is a b c
***********test.java*******************
public class test {
public static void main(String[] args) {
System.out.println("This a java program!");
System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]);
}
}
********cmd*****************
C:\>javac test.java
C:\>java test a b c
This a java program!
arg isa b c
第3个回答  2011-10-08
这是主类中的主方法的形式参数 ,是一个String 对象数组,用来保存java 应用程序后所带的参数,如同DOS命令中后面所带的参数。
如编写一个JAVA程序程序用来把一个位置文件复制到另一个位置,编译后程序名为copyfile.class ,将C:\a\1.txt复制到D:\b\下,文件名改为 b.txt,则在命令行解释执行:
java copyfile C:\a\1.txt D:\b\b.txt,注意这四个部分之间有空格,则两个参数字符串就存在数组args中,可以在程序中访问它们。
相似回答