一个.java源文件中可以有多个类吗?(内部类除外)有什么条件? 

 * 可以的   
 *但是只能有一个public类, 而且如果有public类的话,这个文件的名字要和这个类的名字一样
 *如果都没有public类,名字可以不和这个类一样。

public class MultiClass {
    public static void main(String[] args)
    {
        new MultiClass();
    }
 int i = 0;
}

class B {
 String str = "b";
}

class C {
 String str = "c";
}  

bin目录中会产生3个class文件:

MultiClass.class B.class C.class


/*源文件javac出多个class文件出来!是怎么回事?
1.   你在一个文件里定义了几个类的时候,会出现这种情况,比如   
  public   class   A   {}   
  class   B   {}   
  class   C   {}   
  这样每个   class   会是一个   .class     文件   
    
  2.   你定义了内部类的时候会出现这种情况,如   
  public   class   A   {   
          class   B   {   
          }   
  }   
  这会产生两个   class   文件,一个   A.class,一个   A$B.class   
    
  3.   使用了匿名类的时候出出现这种情况,如   
  public   class   A   {   
          void   xxx()   {   
                    button.addActionLisener(new   ActionListener()   {...});   
          }   
  }   
  这也会产生多个   class,一个   A.class,一个   A$1.class   
  }


bin的class文件不同同名。所以我们定义的所有的类(除了内部类和匿名类)都应该不一样。否则报错