只有两个类在同一个包中,其中一个类调用那另一个类时才可以找得到
当然没必要以java开头
以java开始的包那是sun公司已经定义好的类在那个包中
package A 是你将当前的这个类添加到A包中
import A.* 是你在此类中要用到这个包里面的东西,而将其导入
详细见论坛:http://topic.youkuaiyun.com/t/20041101/22/3512168.html
--------------------------------------------------------------------------------------------------------------------------------
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
}