为什么这样不可以呢?
简单一点,程序首先运行main。输出了1,然后实例化staticBlock,传入了输入值后,进入有参数的staticBlock代码块,输出了3,然后输出了结果。
输出2,然后执行了show方法,。这可以很明显的看出来,sex的值并没有向show方法中传入。所以执行show方法输出的就是空。
直接传进去值,调用show方法就有值了。
应该是这样的,有啥不对或不清楚的地方一起讨论吧。
因为你有参的构造函数那,是直接输出的传入值,并未对成员变量进行赋值,所以你调用show函数时,显示的null.