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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程有愿 中级黑马   /  2012-7-2 21:28  /  2070 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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());
         
        }
        }

8 个回复

倒序浏览
可以运行啊  你把public class MainBoard中的public去掉就行了
回复 使用道具 举报
希望你下次给出错误提示
别人也好回答
回复 使用道具 举报
其实这就是一个.java源文件当中可以有多个类的问题,一个.java源文件当中可以有多个类,但是只有一个类是public类型的而且这个类的名字跟源文件的名字必须是一致的,所以你的主函数设成public的没错 但是第一个类设成pubic的就会出错
回复 使用道具 举报
public class MainBoard中的public去掉就可以运行了,
回复 使用道具 举报
首先,如果你要编译没问题的话要把你的java文件名字保存为MainBoard,这样编译不会出错,因为文件名要和公共类的类名一样才行,但运行时会异常,因为程序要有一个main方法做为入口才能运行,虚拟机会在主类的class文件中找入口,而你的主类中没有main函数做入口,所以运行不起来。所以你要把你main函数所在的类做为主类才行,可以在主类前加public或者都不加,虚拟机会自动寻找程序入口。不知道说的对不,请指正
回复 使用道具 举报
其实吧  我想出来了,只是我想运行的类和文件名称不一致,我文件命名为MainBoard.class而这个类里没有主函数入口,而我自己想运行的是Class  DuoTaiDemon11,所以才出现上面的情况
回复 使用道具 举报
public class MainBoard   类是不需要定义成public 的
回复 使用道具 举报
初步估计楼主没有将主方法所在的类名定义成与.java一致的名字,另外public类,在jvm执行时是首先执行的。一般的要把main方法定义在public类总,并且java中必须将public的类名与java文件名定义成一致的,否则就会编译不通过,或不能执行!
如:public class People
{
      public static void main(String[] args)
     {}
}
其java的文件名必须为:People.java
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马