静态内部类实例化
结论:
- 静态内部类中的非静态变量和方法需要实例化静态内部后,才能调用。(且访问权限够)
- 静态内部类中的静态变量和方法可以直接访问使用。(且访问权限够)
- 静态内部类可以访问外部类的变量和方法
- 如果是静态变量和方法可以直接访问。(且访问权限够)
- 如果是非静态变量和方法,需要实例化外部类然后才能访问。(且访问权限够)
- 当外部类被加载的时候,静态内部类不会被加载,只有当第一次调用到该静态内部类时,才会被加载。
静态内部类类虽然写在了外部类的内部,但就像一个其他的不在外部类内部的普通的类一样,使用静态内部类的原因:
- 用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。所以没有必要专门用一个Java文件存放这个类。
- 可以给静态内部类添加一些类变量才有的访问修饰符,如 public、private 以及 protected,达到如类变量一样的访问权限控制
- private 修饰静态内部类时,只有外部类可以访问静态内部类中的静态变量以及方法,同时只有外部类可以实例化该静态内部类进而访问其中的非静态变量以及方法