Java里main函数为什么一定要string作为函数参数参数

public class Welcome{
public static void main() {
System.out.println(&welcome!!!&);
这个为什么会在执行时报错。没参数,能还是不能?为什么不能?------解决方案--------------------Java code
public static void main(String[] args) {
//必须有,可以通过命令行输入,也可以不输入参数
------解决方案--------------------开始学java的时候就看到了这句话public static void main(String[] args)或public static void main(String args[]).....
------解决方案--------------------入口函数签名是定死的
------解决方案--------------------main方法就算不调用参数也必须有参数......
------解决方案--------------------探讨引用:Java codepublic static void main(String[] args) {//必须有,可以通过命令行输入,也可以不输入参数}可我要是没调用main里的参数,为什么还是要呢?
------解决方案--------------------这是规定,设计时就已经确立了。
------解决方案--------------------不带参数也行,不过它就不是程序的入口函数了
------解决方案--------------------探讨引用:引用:Java codepublic static void main(String[] args) {//必须有,可以通过命令行输入,也可以不输入参数}可我要是没调用main里的参数,为什么还是要呢?java规定main(String[] args)是类的入口函数啊,如果你不加参数,系统就认……
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有2869人阅读
Java笔记(8)
java中的main函数是一个程序执行的入口,main函数必须被声明为static的,在编译的时候就已经为其分配了内存,就是说,不用调用也能执行的,那么main函数的参数有什么作用呢?参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。此外在其他类中直接使用main()函数,并传递参数也是可行的,虽然这种方法不太常用,但毕竟为我们提供了一种选择。
主函数的一般写法如下:
public static void main(String[] args){…}参数String[] args的作用:
第一、程序使用者可以在命令行状态下向某个类传递参数。看下面的例子:
  public class ArgsDemo {
  public static void main(String[] args) {
  String str = new String();
  for (int i = 0; i & args. i++) {
  System.out.println(args[i]);
  str += args[i];
  System.out.println(str);
  使用javac ArgsDemo.java命令生成ArgsDemo.class文件;然后使用“java ArgsDemo 参数一 参数二 参数三 …”的格式向ArgsDemo类传递参数。该示例程序将首先输出参数,然后输出所有参数的和。比如java ArgsDemo a b c,将得到这样的输出:
  需要注意的是,如果这里的循环条件不是i &args.length,而是i &5,则在命令行中输入的参数必须是5个,否则将会报错,错误类型为:
  Exception in thread “main” java.lang.ArrayIndexOutOfBoundException:3
  at ArgsDemo.main(ArgsDemo.java:5)
  第二、可以在另一个类中向包含main()的类传递参数,如下例:
& && public class A {
  public static void main(String[] args)
  for(int i=0;i &args.i++)
  System.out.println(args[i]);
  public class B {
  public static void main(String[] args)
  c = new A();
  String[] b = {&111&,&222&,&333&};
  c.main(b);
  首先定义一个class A,在A中定义一个main()函数,在该函数中输出参数args。然后定义一个classB,在B中初始化一个A的实例c,然后向c传递参数,并且调用c的main方法打印出传入的参数值。输出结果如下:
  由于main()函数是静态函数,即不需要实例化也能使用,所以B使用下面的写法也能完成相同的功能:
public class B {
  public static void main(String[] args)
  //A c = new A();
  String[] b = {&111&,&222&,&333&};
  A.main(b);
原文链接:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:32460次
排名:千里之外
原创:24篇
(2)(2)(1)(2)(3)(2)(1)(3)(7)(5)java中的main函数中args[]参数解析
args[] 在命令行运行时候输入的参数,因为参数可以为多个,所以要用数组来存,比如dos的copy命令:
  copy c:\*.* d:\*.*
  这就是两个参数c:\*.*和d:\*.*
  java在命令行运行的时候要用到java命令:
&  java Test value1 value2
  后面就是两个参数,在main里面args[]就是两个长度的数组value1存在args[1]中,value2存在args[2]中。
&  args[0]存储的是命令,其后才是参数!
&  在Java中有这样一条语句:public static void
main(String[] args)。其中的args是Java命令行参数,我们在DOS中执行Java程序的时候使用“java 文件名
args参数”。args这个数组可以接收到这些参数。
  main(argc,argv)
&  int argc,char *argv[];
&  {   .....   }
&  从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了。
&  在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
&  命令参数1参数2....参数n&
&  此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
&  命令行与main()函数的参数存在如下的关系:
&  设命令行为:program str1 str2 str3 str4
&  其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件
program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数
argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。
&  数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。
直接调用:
当然也可以在一个类中main方法中直接调用另一个类里的main方法,因为main方法都是static修饰的静态方法,因此可以通过类名.main来调用,这时就可在调用处main方法中传入String[]类型的字符串数组,达到调用的目的,也可不传入参数。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 c语言main函数参数 的文章

 

随机推荐