1、由于一般情况类与类之间访问数据需要在类中建立对方的对象(执行new操作),但是内部类可以直接访问外部类中的成员,而外部类访问内部类需要new内部类的对象。
所以当内部类定义在其外部类的成员位置上,而且非私有,可以在外部的其他类中直接建立内部类对象。
格式外部类名.内部类名 变量名 = 外部类对象.内部类对象;
Outer.Inner in = new Outer().new Inner();
注意:内部类可以被私有修饰。外部类不可以。
2,当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。 static:内部类就具备static的特性。
但是当内部类被static修饰后,它就只能直接访问外部类中的static成员,因此出现了访问局限。
3、内部类定义在局部时
a,不可以被成员修饰符修饰
b,可以直接访问外部类中的成员,以及访问被final修饰的局部变量。
这些毕老师的视频里都讲过的!
|