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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴通 中级黑马   /  2012-9-3 21:23  /  4718 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
public static void main(String[] args)
{
  String[] arr={"haha","hehe","xixi","hiahia"};
  MainTest.main(arr);
}
}
class MainTest
{
public static void main(String[] args)
{
  for(int x=0;x<args.length;x++)
  {
   System.out.println(args[x]);
  }
}
}

老师讲过一个主函数能够调用另一个主函数,但是一个程序中不是只能有一个主函数吗?

16 个回复

倒序浏览
谁跟你说一个程序中只能有一个主函数?
是一个类里面只能有一个主函数,本类调用其他类的主函数跟调用一般函数是一样
一个程序里面有很多个类,每个类都可以设置主函数,也就多个程序入口而已,不过一般不这么做。
回复 使用道具 举报
本帖最后由 杨习平 于 2012-9-3 21:37 编辑

一个类中有且只能有一个主函数,但是一个程序中可以有多个类,每个类只能有一个主函数,同学这是最基本的常识。
回复 使用道具 举报
应该说,一个类,可以有多个main函数,但只有public   static   void   main(String[]   args)是程序入口。

一个工程可以有很多类,每个类都可以有public   static   void   main(String[]   args)。所以一个工程可以有很多main函数
回复 使用道具 举报
楼上正解。
回复 使用道具 举报
混脸熟。。。。。。
回复 使用道具 举报
刘岩喜 发表于 2012-9-3 21:36
应该说,一个类,可以有多个main函数,但只有public   static   void   main(String[]   args)是程序入口。 ...

:)正解。。。
回复 使用道具 举报
一个类中可以有多个主函数但是他们之间是重载关系,而且虚拟机只识别public static void main(String[]args)这个主函数,在这个主函数中只有args可以被修改,其余的都是固定格式的,
你的这些主函数是在不同的类中,当然可以存在,而且你用doc命令运行时,可以根据生成的class文件名分别对其运行
你可以这样认为主函数是特殊的一般函数,他有一般函数的特性,只不过他比一般函数多了被虚拟机识别的特性,
回复 使用道具 举报
如果把一个.java文件看做一个程序的话,一个.java文件中可以创建很多类,每个类都可以有自己的一个主函数(就像楼主举的例子),编译该.java文件每个类都会生成对应的.class文件,你运行哪个.class文件,程序就会执行对应的主函数中的代码。所以在一个类的主函数中调用另外一个类的主函数和调用另外一个类的成员函数是一样的。
简单总结就是:不是一个程序只能有一个主函数,而是一个类里面只能有一个主函数,在一个类的主函数中调用另外一个类的主函数和普通函数本质是一样的。
不知道这样解释楼主是否明白。
回复 使用道具 举报
我想追问一下,我建了个MainClass.java文件然后把楼主的代码复制进去,编译,运行,能够输出结果,我想知道程序是怎运行的呢,哪一个类先运行的呢
回复 使用道具 举报
王陶成 发表于 2012-9-3 23:43
我想追问一下,我建了个MainClass.java文件然后把楼主的代码复制进去,编译,运行,能够输出结果,我想知道 ...

你doc命令中java ……后面写的类名虚拟机从哪里作为入口进去的
回复 使用道具 举报
刘明月 发表于 2012-9-3 23:49
你doc命令中java ……后面写的类名虚拟机从哪里作为入口进去的

我拿cmd试了一下,的确不行。弄错了。
可我刚开始是拿JCreator做的,用软件编译运行就能出来,是软件的问题吧
回复 使用道具 举报
public   static   void   main(String[]   args)是程序入口,代表程序能独立运行。在实际的开发中,一个程序内可以有好多个类,每个类中都可以有主函数,
有的类只是为了描述对象的特点,方法等,可以不运行,那么就不用写主函数,直接调用该类的方法即可,写了也没关系,这个看需求。有的类必须得写
例如:从客户端向服务端发送东西,必须首先得保证两端都得开启,那么这两个类中必须写主函数,,,后面会学到的
回复 使用道具 举报
冰舞世界 发表于 2012-9-4 00:37
public   static   void   main(String[]   args)是程序入口,代表程序能独立运行。在实际的开发中,一个程 ...

那是老师为了演示方便才那么写的
回复 使用道具 举报
bucuo..........
回复 使用道具 举报
每个类里面都可以有一个public static void main(String[] args){}。
用java.exe命令运行这个程序时,你写那个类,jvm就从那个类中的public static void main(String[] args){}开始执行。
回复 使用道具 举报
哥,一个程序中可以又多个主函数哈,只是一个类中只有一个主函数。一个类调用另一个类的主函数就和调用另一个类的普通方法一样,知道么。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马