在类的内部存在的类叫做内部类,内部类是嵌套类的一种。具体可以分为以下4种:
静态内部类:使用static关键字修饰的类
成员内部类:不使用static关键字修饰的类
方法内部类:在方法内部存在的内,它的作用域只在方法内部
匿名内部类:涉及接口和抽象类,暂时不讨论
静态内部类
当开发者不想通过使用外部类的对象访问内部类,而是直接访问时,可以声明内部类为static类型。
静态内部类可以访问外部类的静态成员,但是不能访问外部类的非静态成员。(但可以通过对象访问,注意对象与类的区分)
定义静态内部类的方法如下:
class enclosingClass{
static class innerClass{
}
}
在静态内部类中,可以有静态成员,也可以有非静态成员。不管类是静态的还是非静态的,可以在main方法中直接使用的永远是静态成员。对于非静态成员,如果要使用,也必须先建立起实例对象,示例代码如下:
class enclosingClass{
static int outerA = 1;
int outerX = 5;
static class innerClass{
static int innerB = 2;
int innerC = 3;
public void getValue(){
outerA++;
S