黑马程序员技术交流社区
标题:
为什么不能运行啊
[打印本页]
作者:
程有愿
时间:
2012-7-2 21:28
标题:
为什么不能运行啊
public class MainBoard {
public void run()
{ System.out.println("MainBoard run");
}
public void useNetcard(NetCard c)
{ c.open();
c.close();
}
}
class NetCard
{ public void open()
{ System.out.println("netcard open");
}
public void close()
{ System.out.println("netcard close");
}
}
class DuoTaiDemon11
{
public static void main(String[] args )
{
MainBoard m=new MainBoard();
m.run();
m.useNetcard(new NetCard());
}
}
作者:
葛奎
时间:
2012-7-2 21:32
可以运行啊 你把public class MainBoard中的public去掉就行了
作者:
黑马-王言龙
时间:
2012-7-2 21:41
希望你下次给出错误提示
别人也好回答
作者:
周朋飞
时间:
2012-7-2 23:41
其实这就是一个.java源文件当中可以有多个类的问题,一个.java源文件当中可以有多个类,但是只有一个类是public类型的而且这个类的名字跟源文件的名字必须是一致的,所以你的主函数设成public的没错 但是第一个类设成pubic的就会出错
作者:
赵庆礼
时间:
2012-7-2 23:51
public class MainBoard中的public去掉就可以运行了,
QQ截图20120702234900.jpg
(39.01 KB, 下载次数: 36)
下载附件
2012-7-2 23:50 上传
作者:
孙飞
时间:
2012-7-3 00:22
首先,如果你要编译没问题的话要把你的java文件名字保存为MainBoard,这样编译不会出错,因为文件名要和公共类的类名一样才行,但运行时会异常,因为程序要有一个main方法做为入口才能运行,虚拟机会在主类的class文件中找入口,而你的主类中没有main函数做入口,所以运行不起来。所以你要把你main函数所在的类做为主类才行,可以在主类前加public或者都不加,虚拟机会自动寻找程序入口。不知道说的对不,请指正
作者:
程有愿
时间:
2012-7-3 09:04
其实吧 我想出来了,只是我想运行的类和文件名称不一致,我文件命名为MainBoard.class而这个类里没有主函数入口,而我自己想运行的是Class DuoTaiDemon11,所以才出现上面的情况
作者:
黄大兴
时间:
2012-7-3 10:17
public class MainBoard 类是不需要定义成public 的
作者:
刘建龙
时间:
2012-7-3 15:40
初步估计楼主没有将主方法所在的类名定义成与.java一致的名字,另外public类,在jvm执行时是首先执行的。一般的要把main方法定义在public类总,并且java中必须将public的类名与java文件名定义成一致的,否则就会编译不通过,或不能执行!
如:public class People
{
public static void main(String[] args)
{}
}
其java的文件名必须为:People.java
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2