下面程序段的输出结果为( )。 packagetest; publicclassClassA { intx=20; staticinty=6; publicstaticvoidmain(Stringargs[])

admin2012-12-13  39

问题 下面程序段的输出结果为(    )。    packagetest;    publicclassClassA    {    intx=20;    staticinty=6;    publicstaticvoidmain(Stringargs[])    {    ClassBb=newClassB();    b.go(10);    System.out.println("x="+b.x);    }    }    classClassB    {    intX;    voidgo(inty)    {    ClassAa=newClassA();    X=a.y;    }    }   

选项 A、x=10     
B、x=20
C、x=6     
D、编译不通过

答案C

解析  本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的go方法可以生成一个ClassA刘象,并给这个新生成的对象赋以ClassA中的类变量y的值。从main()方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给x和y赋值,x=a.y后,x值为6,再返回去执行System.out.println("x"+b.x)语句,输出为x=6,可见,正确答案为选项C。
转载请注明原文地址:https://jikaoti.com/ti/Hq80FFFM
0

最新回复(0)