你可以这样理解,static在类加载的同时也加载,静态方法不用new就可以直接调用,如果是实例方法,则必须要new一个对象才能进行调用。
给个例子
static调用- class A {
- int x = 1;
- class B {
- int x = 2;
- void func() {
- int x = 3;
- System.out.println(A.this.x+ "," + B.this.x + "," + x);
- //内部非静态类中可以随意访问外部类的各个成员变量或成员函数。通过创建类的对象来访问实例变量
- //如果内部类B为静态,则输出语句应为“System.out.println(new A().x+ "," + new B().x + "," + x);”
- }
- }//内部类
- }//外边类
复制代码 |