- 1、静态内部类是定义在外部类的成员位置,并且有static修饰
- 2、可以直接访问外部类的所有成员,包括私有的,但不能直接访问非静态成员
- 3、可以添加任意访问修饰符(public,protected、默认、private),因为它的地位就是一个成员
- 4、作用域:同其他成员,为整个类体
- 5、静态内类—访问—外部类(访问方式:直接访问所有静态成员,不能访问非静态成员)
- 6、外部类—访问—静态内部类(访问方式:创建对象,再方式)
- 7、外部其他类—访问—静态内部类(访问方式见代码)
- 8、若外部类和静态内部类的成员重名时,静态内部类访问默认遵循就近原则,若想访问外部类的成员,则可以使用(外部类名.成员)去访问。
public class StaticInnerClass {
public static void main(String[] args) {
Outer outer = new Outer();
outer.outer_method1();
Outer.StaticInner staticInner = new Outer.StaticInner();
staticInner.staticinner_method1();
Outer.StaticInner staticInner1 = Outer.getStaticInner();
staticInner1.staticinner_method1();
}
}
class Outer{
private int outer_i=10;
private static String outer_name="张三";
public void outer_method1(){
StaticInner staticInner = new StaticInner();
staticInner.staticinner_method1();
}
static class StaticInner{
private static String outer_name="zyt";
public void staticinner_method1(){
System.out.println("outer_name:"+outer_name);
System.out.println("outer_name"+Outer.outer_name);
}
}
public static StaticInner getStaticInner(){
return new StaticInner();
}
}