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

admin2010-02-22  43

问题 有如下程序:    public class MethTest    {      static int Var1=100;      int Var2=200;      public static void main(String args[])      {          Var1=10;          MethTest Obj1=new MethTest();          MethTest Obj2=new MethTest();          Obj1.Var1 ++;          System.out.println(Obj1.Var1);          Obj2.Var1 ++;          System.out.println(Obj2.Var1);          MethTest.Var1 ++;          System.out.println(Obj1.Var1);          Obj1.Var2 ++;          System.out.println(Obj1.Var2);          0bj2.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类的两个对象Obj1和Obj2,通过这两个对象访问类变量和实例变量。我们知道,可以通过类名直接访问类变量,而且,所有实例对象将共享同一个类变量,每个实例对象对类变量的改变都会直接影响到其他实例对象,但一个对象对实例变量的改变不会影响其他实例对象。因此Var1的值每次都会增1,并且保持已经改变的值,Var2的值由于是分别调用,故值并不会改变。
转载请注明原文地址:https://kaotiyun.com/show/VYnp777K
0

最新回复(0)