1、语法格式
【修饰符】 class 外部类 【extends 外部类的父类】【implements 外部类的父接口们】 { 【其他修饰符】 static class 静态内部类名 【extends 内部类的父类】【implements 内部类的父接口们】{ } }
public class Outer{ public static class Inner{ } }
(1)静态内部类也是类,
A:也有自己的字节码文件:外部类名$静态内部类名.class
B:它可以继承自己的父类,实现自己的父接口们
C:它可以有自己的各种成员:属性、方法、构造器、代码块、内部类
(2)静态内部类可以使用外部类的成员,但是只能使用外部类的静态成员,包括外部类的私有的成员
(3)在外部类中使用静态内部类没有限制,只要遵循
A:使用静态内部类的静态成员,就用类名.
B:使用静态内部类的非静态成员,使用“对象."
C:外部类也能使用静态内部类的私有成员
(4)在外部类的外面如何使用静态内部类
A:使用静态内部类的静态成员,就用外部类类名.静态内部类名.
B:使用静态内部类的非静态成员,先要创建静态内部类的对象
//创建静态内部类的对象
外部类名.静态内部类名 对象名 = new 外部类名.静态内部类名(【实参列表】);
(5)静态内部类都可以有什么修饰符
A:4种权限修饰符
B:static一定有
C:final
D:abstract