package org.hanqi.zwxx; public class Test { static int i=47; public void call() { System.out.println("调用call()方法"); for(i=0;i<3;i++) { System.out.print(i+" "); if(i==2){ System.out.println(" "); } } } public static void main(String[] args) { Test t1=new Test(); Test t2=new Test(); t2.i=60; System.out.println("第一个实例对象调用变量i的结果:" +t1.i); t1.call(); System.out.println("第二个实例对象调用变量i的结果:" +t2.i); t2.call(); } }
说明:由于使用“t2.i=60;”语句改变了静态成员变量的值,适用对象t1调用成员变量的值也为60,这正是i值被定义为静态成员变量的功效,即使使用两个对象对同一个静态成员变量进行操作,依然可以改变静态成员变量的值,因为在内存中两个对象同时指向同一块内存区域。t1.call()语句执行完毕后,i值变为3,当再次调用call()方法时又被重新赋值为0,做循环输出工作
详见课本Pg161 例7.13