//类成员相关介绍:从这个例子中要很好的理解一句话:
//对象实际上并不持有类变量,类变量是由该类持有的,同一个类的所有
//对象访问类变量时,实际上都是访问该类所持有的变量。当使用实例来访问类
//成员时,实际上依然是委托给该类来访问类成员.
/*
当使用实例来访问类成员(包括类变量和类方法)时,实际上依然是委托给该类来访问类成员
因此即使某个实例为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 秒) - 正常终止
*/
}
}