黑马程序员技术交流社区

标题: 面试题 [打印本页]

作者: 崔增阳    时间: 2014-4-11 13:54
标题: 面试题
本帖最后由 崔增阳 于 2014-4-12 17:25 编辑

class A

{

public static int X;

static A(){

X=B.Y+1;

}

}

class B

{

public static int Y=A.X+1;

static B(){}

static void Main(){

Console.WriteLine("X={0},Y={1}",A.X,B.Y);

}

}

产生的输出结果是什么 请分析一下



作者: 百川    时间: 2014-4-11 15:41
运行结果是2,1。
1.首先执行A类构造方法。先执行等号右边的B.y。A类压栈。
2.执行B类构造方法,同时为B.y赋值。同样先执行等号右边的部分。
3.此时A.x值为0.所以B.y为1.
4.回到A类构造方法,为字段x赋值。为B.y+1.即2.
不知道过程分析的对不对,单步调试没有结果,自己分析的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2