问题 单项选择题

有如下程序: 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.111213201201

B.101102103201201

C.111213201202

D.101010201201

答案

参考答案:A

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

单项选择题
单项选择题