黑马程序员技术交流社区

标题: 关于main()方法 [打印本页]

作者: 忘忧草    时间: 2012-4-20 20:01
标题: 关于main()方法
为什么main方法要定义为静态方法?它的参数string[] args怎么用?
作者: 丁官林    时间: 2012-4-20 20:35

为什么main方法要定义为静态方法?

静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放。

main 是方法名,当然这个方法是特殊的方法,是Main()就是说是主函数,就是整个程序的入口,程序被编译后从这里开始执行,这也是main方法要是static的原因,因为在啥都没做的时候这个函数就得存在。
作者: 忘忧草    时间: 2012-4-20 20:39
丁官林 发表于 2012-4-20 20:35
为什么main方法要定义为静态方法?

静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用 ...

静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放。
记住了。。。那关于参数的问题?
作者: 丁官林    时间: 2012-4-20 21:51
本帖最后由 丁官林 于 2012-4-20 22:01 编辑

参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。
此外在其他类中直接使用main()函数,并传递参数也是可行的,虽然这种方法不太常用
集体我也说不太清楚,举个例子你自己看吧:
using System;
  
using System.Collections.Generic;
  
using System.Text;
  
  
namespace ConsoleApplication1
  
{
  
    class  A
  
    {
  
        public  static void  main(string[] args)
  
        {
  
  
            for (int i = 0; i  < args.Length; i++)
  
            {
  
                Console.WriteLine(args);
  
            }
  
        }
  
    }
  
    class  B
  
    {
  
        public  static void Main()
  
        {
  
            String[] b = { "111",  "222", "333"  };
  
            A.main(b);
  
        }
  
    }
  
}
图片看不见,我把代码粘贴出来,这是能运行出结果的,你自己看看吧,希望你能看懂!
C:\Documents and Settings\Administrator\桌面\1.gif
作者: 李宗鹏    时间: 2012-4-21 00:24
String[] args  中String[] 这个表示一个string类型的数组,而args  是这个string数组的数组名,
其实public static void main(String[] args)中的String[] args就相当于main函数的参数列表,你可以在main函数执行的时候给主函数传入你想要的string类型的参数
作者: 王雪磊    时间: 2012-4-21 13:00
args[]是传递的参数,就是自己可以输入参数
作者: 越来越好    时间: 2012-4-21 16:00
还看不懂,不过相信只要肯学就一定会懂。
作者: 韩新凯    时间: 2012-4-21 16:34
/*
* public static void main(String[] args)
* 主函数:是一个特殊的函数,作为程序入口,可以被jvm调用。
*
* 主函数的定义:
* public:代表着该函数访问权限是最大的。
* static:代表主函数随着类的加载就已经存在了。
* void:主函数没有具体的返回值。
* main:不是关键字,但是是一个特殊的单词,可以被jvm识别。
* (String[] args):函数的参数,参数类型是一个数组,该数组中的元素是字符串。
* 字符串类型的数组。args:arguments.args是可变的,不一定是args,可以是x,y...等。
* 主函数是固定格式的:jvm识别。
*
* jvm在调用主函数的时候,传入的是new String[0];这里的0是指没有元素,
* args[0]指数组的第一个元素。
*/
public class MainDemo {
public static void main(String[] args)//new String();
{
//  System.out.println("HelloWorld!");
//  dMainDemo.main();
//  System.out.println(args.length);
//  System.out.println(args[0]);//不正确,args[0]是args数组的第一个元素,
  String[] arr = {"ss","dd","ff"};
  MainTest.main(arr);
  
}
// public static void main(){    //重载,正确。
//  System.out.println("haha");
// }
}
//String[] args = new String[];
//String[] args = null;
class MainTest{
public static void main(String[] args){
  for(int x=0;x<args.length;x++){
   System.out.println(args[x]);
  }
}
}

作者: 忘忧草    时间: 2012-4-23 09:24
参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。
记住了~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2