A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 忘忧草 中级黑马   /  2012-4-20 20:01  /  1866 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么main方法要定义为静态方法?它的参数string[] args怎么用?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

8 个回复

倒序浏览

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

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

main 是方法名,当然这个方法是特殊的方法,是Main()就是说是主函数,就是整个程序的入口,程序被编译后从这里开始执行,这也是main方法要是static的原因,因为在啥都没做的时候这个函数就得存在。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
丁官林 发表于 2012-4-20 20:35
为什么main方法要定义为静态方法?

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

静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放。
记住了。。。那关于参数的问题?
回复 使用道具 举报
本帖最后由 丁官林 于 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

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
String[] args  中String[] 这个表示一个string类型的数组,而args  是这个string数组的数组名,
其实public static void main(String[] args)中的String[] args就相当于main函数的参数列表,你可以在main函数执行的时候给主函数传入你想要的string类型的参数

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
args[]是传递的参数,就是自己可以输入参数

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
还看不懂,不过相信只要肯学就一定会懂。
回复 使用道具 举报
/*
* 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]);
  }
}
}

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。
记住了~

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马