d是静态全局变量,可以不赋初值,它默认是0
你把它传递进test的构造函数里,然后让e=x,那么e不就等于0吗
你又没有让e=d
-=-=-=
你想看代码块有没有执行,设置断点啊。
你这就是个永远不会被执行的代码块,因为根本没有写进任何函数里面,永远不会被调用
先了解一下的执行顺序:1. 静态代码块 2. 构造代码块 3. 构造函数,虽然构造代码块里修改了d的值,但是你在传入的时候,d是0。相当于new Test(0)
你把int做参数传入方法,java只会复制一份他的值,你在方法里操作的只是d的一个副本,和外面的d无关
最后d等于多少啊
在这个图片里了-----比较详细;