只有两个类在同一个包中,其中一个类调用那另一个类时才可以找得到
当然没必要以java开头
以java开始的包那是sun公司已经定义好的类在那个包中

package   A   是你将当前的这个类添加到A包中
import   A.*   是你在此类中要用到这个包里面的东西,而将其导入

 

详细见论坛:

--------------------------------------------------------------------------------------------------------------------------------

java内部类外部类

在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部。内部类作为其外部类的一个成员,与其他成员一样,可以直接访问其外部类的数据和方法。只不过相比较外部类只有public和默认的修饰符不同,内部类作为一个成员,可以被任意修饰符修饰。编译器在编译时,内部类的名称为OuterClass$InnerClass.class 。简单的说,所谓内部类,其实就是定义在类中的类!内部类可以实现接口,当类与接口或者接口与接口发生方法命名冲突的时候,还必须用内部类来实现接口。

其它类想掉用内部类必须通过外部类来用,不可以直接调用!内部类还是有用处的,比如外部类已经继承了一个类,还想再继承别的类如thread,就可以写一个内部类来进行继承,有此类来实现所需的方法!

内部类实例化的时候要实例化外部类后如Out out=new Out();Inside inside=out.new Inside();

 

-------------------------------------------------------------------------------------------------------------

java源文件中可以有多个类,但只能有一个public类,并且public的类名必须与文件名一致

1.   你在一个文件(Acat.java)里定义了几个类的时候,会出现这种情况,比如  
  public   class   Acat   {}  
  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   
   }