静态内部类----Java
public class OutClass {//成员变量private static String name;private static int num = 10;//构造方法public OutClass(){}public OutClass(String name, int num){this.name = name;this.num = num;}//成员方法public static void methodOut(){System.out.println("methodOut");InnerClass ic = new InnerClass();InnerClass.methodInner2();}public void methodOut2(){InnerClass ic = new InnerClass();System.out.println(ic.num);//20ic.methodInner();InnerClass.methodInner2();}static class InnerClass{private String type;private int num = 20;//构造方法public InnerClass(){}public InnerClass(String type,int num){this.type = type;this.num = num;}//成员方法public void methodInner(){System.out.println(name);int num = 30;System.out.println(num);//30System.out.println(this.num);//20//内部类如何访问外部类的同名成员变量System.out.println(OutClass.num);//10methodOut();}public static void methodInner2(){}}
}
import demo18.OutClass.InnerClass;
public class Test {public static void main(String[] args) {//要创建静态成员变量内部类对象,不需要先创建外部类的对象OutClass.InnerClass ic = new OutClass.InnerClass();//导入import demo18.OutClass.InnerClass;InnerClass ic2 = new InnerClass();}
}
总结:
1、静态内部类只能访问外部类的静态变量
2、静态内部类如何访问外部类的同名成员变量:OuterClass.num
3、静态内部类属于整个外部类的。创建静态内部类的对象,不需要先创建外部类的对象
4、外部类可以通过类名直接访问内部类的静态成员,访问非静态成员依旧需要先创建内部类对象。