比如下面这段代码:
class kaokao2008
{
public static void main(String[] args)
{
System.out.print("wo");
System.out.print("shi");
}
}
把文件命名为kaokao.java,可以通过编译.但是如果把这类声明为public,就不能够通过编译了,这是为什么?

解决方案 »

  1.   

    Java语法要求一个java源文件中至多有一个使用public修饰的类名,而且public修饰的类名必须和源文件名完全一致。
      

  2.   

    你把文件命名为kaokao.java能编译成功,不是的吧
      

  3.   

    因为文件名和类名不相同,将文件名改为kaokao.java
      

  4.   

    是啊,虽然类名是kaokao2008,文件名是kaokao.java,但确实可以通过编译,但是把这个类改为公共类就不可以了.
      

  5.   

    一个文件中可以有一个public的class,也可以没有public的class,但是要有public的class就只能有一个,而且这个public class的类名必须要和文件名一样,其它的非public的class的名字可以随便命名,如果一个文件中没有public的class的话,类名都可以随便命名
      

  6.   

    你应该将文件名保存为kaokao2008.java这下在前边加上public就可以编译了.
      

  7.   

    同意 yijie1206688() 一个文件中可以有一个public的class,也可以没有public的class,但是要有public的class就只能有一个,而且这个public class的类名必须要和文件名一样,其它的非public的class的名字可以随便命名,如果一个文件中没有public的class的话,类名都可以随便命名。
      编译时出错提示中也是这么显示的。