你可以这样理解,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);”
 
 -         }
 
 -     }//内部类
 
 - }//外边类
 
  复制代码 |