有如下程序; public class MethTest { static int Varl=100; int Var2=200; public static void main(String args[])

admin2010-07-28  58

问题 有如下程序;    public class MethTest    {       static int Varl=100;       int Var2=200;       public static void main(String args[])       {          Varl=10;          MethTest Obj1=new MethTest();          MethTest Obj2=new MethTest();          Obj1.Varl++;          System.out.println(Objl.Varl);          Obj2.Varl++;          System.out.println(Obj2.Varl);          MethTest.Varl++;          System.out.println(Objl.Varl);          Obj1.Var2++;          System.out.println(Obj1.Var2);          Obj2.Var2++;          System.out.println(Obj2.Var2);       }    }    程序的运行结果为(    )。

选项 A、11   12   13   201   201
B、101   102   103     201   201
C、11   12   13   201   202
D、10   10   10   201   201

答案1

解析 本题考查实例成员和类成员用法的不同。在给出的程序中,声明一个类变量 Var1、实例变量Var2和类方法main。在类方法main中访问类变量Var1和实例变量Var2,在main方法中还实例化了MethTest类的两个对象Obi1和Obi2,通过这两个对象访问类变量和实例变量。我们知道,可以通过类名直接访问类变量,而且,所有实例对象将共享同一个类变量,每个实例对象对类变量的改变都会直接影响到其他实例对象,但一个对象对实例变量的改变不会影响其他实例对象。因此Var1的值每次都会增1,并且保持已经改变的值,Var2的值由于是分别调用,故值并不会改变。
转载请注明原文地址:https://kaotiyun.com/show/IQ9p777K
0

最新回复(0)