引言:
1,每个内部类最后都会被编译成为一个独立的类,生成一个独立的字节码文件
2,内部类可以方便的访问外部类的私有变量
3,成员内部类和静态内部类都可以被外部使用,不过他们都可以被声明为private
—1静态内部类
1,语法上:除了位置放置在其他类内部外,他与一个独立的类差别不大,可以有静态方法、静态变
量、构造方法等
2,可以访问外部类的静态变量,静态方法等
3,在类中可以直接使用内部静态类
4,public静态内部类可以被外部使用,只要通过 外部类.内部类的方式使用。
外部类.内部类 xxx = new 外部类.内部类();
—2成员内部类
1,与静态内部类不同,除了静态变量和方法,成员内部类还可以直接访问外部类的实例变量和方法
2, 成员内部类的对象总是与一个外部类对象相连的
外部类.内部类 xxx=new 外部类().new 内部类();
3,成员内部类中不可以定义静态变量和方法(final类型除外) 方法内部类和匿名内部类也不可以
—3局部内部类
1,定义在方法中,只能在方法中被使用
2,如果方法是实例方法,则内部类可以直接访问外部类的实例变量和方法,静态变量和方法
3,如果方法是静态方法,则内部类智能访问外部类的静态变量和方法
4,可以直接访问方法的参数和方法中的局部变量,不过这些变量必须声明为final
—4匿名内部类
1,没有名字,没有构造方法,只能使用一次用来创建一个对象