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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如图所示

360截图20150305092647027.jpg (98.36 KB, 下载次数: 140)

360截图20150305092647027.jpg

14 个回复

倒序浏览
一个程序只能有一个主函数,如果像你这到程序这样的话,运行就需要选择一个入口主函数,也就是说你要告诉编译器到底是运行哪个class。
回复 使用道具 举报
yjsf216 发表于 2015-3-5 09:41
一个程序只能有一个主函数,如果像你这到程序这样的话,运行就需要选择一个入口主函数,也就是说你要告诉编 ...

那个但是没有语法错误吧,只是说运行的时候需要选择从那个class文件的主函数运行吧
回复 使用道具 举报
一个类只能有一个主函数,java虚拟机在运行时首先找的就是主函数,如果你有两个主函数,那么java虚拟机就不知道加载哪一个,就会报错。
回复 使用道具 举报
习惯就好 发表于 2015-3-5 09:44
一个类只能有一个主函数,java虚拟机在运行时首先找的就是主函数,如果你有两个主函数,那么java虚拟机就不 ...

那出错的是编译时还是运行时?
回复 使用道具 举报
硫氢化铁 发表于 2015-3-5 09:43
那个但是没有语法错误吧,只是说运行的时候需要选择从那个class文件的主函数运行吧 ...

应该是没有语法错误的
回复 使用道具 举报
yjsf216 发表于 2015-3-5 09:50
应该是没有语法错误的

这样啊,多谢了
回复 使用道具 举报
本帖最后由 mxdeheima 于 2015-3-5 09:53 编辑

你这个程序运行起来应该是输出"hello java"
但是,你看的实际是假象,并不是两个主函数并存了。你可以做如下两个尝试:
在Demo类中mian()添加Car.main(),点击运行按钮,你看的结果是:两个函数的system语句的内容都输出了。根据这个测试以及你看的结果,显然在运行程序的时候,jvm实际上只是调用了一个main(),而并不是两个main函数并存。基于你的本身的结果,只是运行了Demo类的main,而Car类的一个只是和Demo类main同名的函数并没有调用。
回复 使用道具 举报
硫氢化铁 发表于 2015-3-5 09:43
那个但是没有语法错误吧,只是说运行的时候需要选择从那个class文件的主函数运行吧 ...

一个程序只能有一个主函数,另一个叫做叫Main 的静态方法,正好与主程序main方法名相同而已。你选择一个主函数另一个就变成了Main 的静态方法
回复 使用道具 举报
yjsf216 发表于 2015-3-5 09:53
一个程序只能有一个主函数,另一个叫做叫Main 的静态方法,正好与主程序main方法名相同而已。你选择一个 ...

了解了,多谢
回复 使用道具 举报
mxdeheima 发表于 2015-3-5 09:52
你这个程序运行起来应该是输出"hello java"
但是,你看的实际是假象,并不是两个主函数并存了。你可以做如 ...

没理解..........
回复 使用道具 举报
本帖最后由 z47057554 于 2015-3-5 10:14 编辑

你这样写是在一个文件里写了两个程序,你要是看到基础视频的网络编程那一块,你会发现毕老师也是在一个文件中写了两个程序,你这样写不错,你若是用cmd窗口的话,你javac的时候会生成两个class文件,你java 哪个class就启动哪个程序,你可以打开两个cmd程序,分别java,同时启动两个程序,也可以在一个cmd中启动完一个再启动另一个,eclipse的话应该是你的java文件是哪个类名,他就启动哪个类中的程序,这个是我感觉的不知道对不对,你可以试下
回复 使用道具 举报
你这个应该会在运行时出错,一个程序中只能有一个主函数
回复 使用道具 举报
一个类中最多可以有一个主函数,在你的程序中并没有在一个类中出现两个主函数,你只是将两个类写在了一起
回复 使用道具 举报
边晓炎 来自手机 中级黑马 2015-3-5 11:10:35
15#
他会先找public修饰的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马