Java为什么可以在实例化对象的时候在后面的括号里赋值

2024-11-27 17:42:16
推荐回答(1个)
回答1:

您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。展开全部
//举例说明
public class P {
{
//1、输出a=0
System.out.println("a="+this.a);
a=6;
//2、输出a=6
System.out.println("a="+this.a);
}
int a=9;
public static void main(String[] args) {
//3、输出a=9
System.out.println("a="+new P().a);
}
}
/*为什么是按1、2、3的顺序输出?
分析:
首先,new P().a中的new会分配内存,并将a初始化为默认值0(即用0填充分配的内存),所以先输出1;
其次,字段的赋值与初始化块的执行是按顺序执行的(谁在前就先执行谁),所以先执行初始化块中的a=6;后执行int a=9;中的赋值操作,最后a的值是9。
*/非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!