一段简单的代码,如下:class TestValuableDomain{
   public static void main(String[] args)
   {
      Bean1   b1 = new Bean1();
      Bean2     b2 = new Bean2();   
      b1.update();
      b2.save();
   }
}public  class Bean1{
    public void  update(){
        int iii = 2;
        iii++;
        System.out.println("iii是:" + iii);
    }
}class Bean2{
       public void save(){
        int iii = 5;
        iii++;
        System.out.println("iii是:" + iii);
  }
}提示错误:
TestValuableDomain.java:15: 类 Bean1 是公共的,应在名为 Bean1.java 的文件中声明
public  class Bean1{
        ^
1 错误必须去掉这里的类前面的public,才正确,为什么这样呢?非常谢谢大家啊。

解决方案 »

  1.   

    文件名必须与 public 修饰的类 的类名相同应该把public 放在含有main方法的类前
      

  2.   

    一个java文件中只能有一个public类,而却这个类的名字要与文件名相同
      

  3.   

    应该为
    public class TestValuableDomain{ 
      public static void main(String[] args) 
      { 
          Bean1  b1 = new Bean1(); 
          Bean2    b2 = new Bean2();  
          b1.update(); 
          b2.save(); 
      } 

    然后 javac TestValuableDomain.java
    把Bean1类前的 关键字public 去掉
      

  4.   

    一个文件中只能有一个公共类,而且要与文件的主名相同。至少SUN的JDK是这样要求的。
      

  5.   

    1,一个java源文件只能有一个public类,如果这个源文件有public类的话,那个文件名必须与这个public类的类名相同;如果源文件中没有public类,那么文件名可以是源文件中任意一个类的类名;
    2,在编译文件时,应该编译源文件名加.jar后缀,如:javac Bean1.java;但在运行时,应该运行含有main方法的那个类,如:java TestValuableDomain
    3,所以楼主的源码根本不用改,只要保证文件名是Bean1.java,然后编译javac Bean1.java   运行java TestValuableDomain应该就没有问题了`
      

  6.   

    很基础啊,只能有一个public class
      

  7.   

    一个.java文件可以有多个class,但是public class 只能有一个,而且必须与文件名相同
      

  8.   

    一个java文件中只能有一个public类,类的名字要与文件名相同,做如下修改即可。
    class TestValuableDomain-->public class TestValuableDomain.
    public  class Bean1-->class Bean1
      

  9.   

    一个.java文件可以有多个class,但是public class 只能有一个,而且必须与文件名相同,
    这是规定...
      

  10.   

    感觉楼上的答复并非楼主想要的答案。
    这些基础的东西相信楼主肯定知道。
    但是要问为什么去掉public,这个真不好说。
    在不知道之前就先认为它是默认的或sun的规定吧。
      

  11.   

    java 程序不是非要有public 来修饰类的。如果是用public来修饰类的话,类名才需要同文件名相同,如果没有用public修饰 类名可以同文件名相同也可以不和文件名相同。
      

  12.   

    一个java文件中只能有一个public类,而却这个类的名字要与文件名相同