2011-05-09 12:47:49
程序如下:
程序开始只有公共类和P类;类P有一个静态代码块,一个构造函数;输出结果为:static block p constractor;
解释:静态代码块是在编译时,类被加载进JVM时,静态代码块也随之被加载,且只加载一次;即如果在主函数再生成一个P对象,输出结果当为static block p constractor p constractor;
继续扩展:当有Q类继承P时,R继承Q类; 在主函数中new 一个R类对象,且Q和R类各自有自己的静态代码块和构造函数; 同上道理;
则静态代码块随类加载且只被加载一次,可以预料输出结果为:P static Q static R static P constractor Q constractor R constractor ;若在主函数生成两个R类对象呢? 则输出结果为:。。。?
由以上可推出: 不能在静态方法中访问静态变量;静态方法中不能用this;