下面程序段的输出结果为 package test; public class A { int x=20; static int y=6; public static void main(String

admin2010-02-22  26

问题 下面程序段的输出结果为    package test;    public class A     {       int x=20;       static int y=6;       public static void main(String args[])       {         Class B  b=new Class B();         b.go(10);         System.out.println(”x=”+b.x);         }       }      class Class B      {        int x;        void go(int y)        {           ClassA a=new ClassA();           x=a.y;         }       }

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

答案4

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

最新回复(0)