//类成员相关介绍:从这个例子中要很好的理解一句话: //对象实际上并不持有类变量,类变量是由该类持有的,同一个类的所有 //对象访问类变量时,实际上都是访问该类所持有的变量。当使用实例来访问类 //成员时,实际上依然是委托给该类来访问类成员. /* 当使用实例来访问类成员(包括类变量和类方法)时,实际上依然是委托给该类来访问类成员 因此即使某个实例为null,它也可以访问它所属的类成员。例如下面代码: */ public class NullAccessStatic { private void test1(){} private static void test() { System.out.println("static修饰的类方法"); } public static void main(String[] args) { //定义一个NullAccessStatic变量,其值为null NullAccessStatic nas = null; //使用null对象调用所属类的静态方法 nas.test(); //下面这一句话运行时将会输出异常提示: //nas.test1(); /* ---------- 运行 ---------- static修饰的类方法 Exception in thread "main" java.lang.NullPointerException at NullAccessStatic.main(NullAccessStatic.java:20) 输出完成 (耗时 0 秒) - 正常终止 */ } }