黑马程序员技术交流社区
标题:
成员变量的初始化和代码块哪个先执行?
[打印本页]
作者:
guohuaxin
时间:
2015-7-31 23:05
标题:
成员变量的初始化和代码块哪个先执行?
public class Demo
{
//int a = 9; //A
{
a = 6;
}
int a = 9; //B
public static void main(String[] args)
{
System.out.println(new Demo().a);
}
}
情况1. int a = 9; 如果放在A处,则输出6;
情况2 int a = 9; 如果放在B处,则输出9;
程序执行不是至上而下吗? 情况1好理解,但是情况2,怎么解释呢?是是先是先初始化,还是先执行代码块啊?
作者:
rxtm
时间:
2015-7-31 23:07
他俩是一样的
作者:
guohuaxin
时间:
2015-8-1 00:14
rxtm 发表于 2015-7-31 23:07
他俩是一样的
不一样的,我运行过
作者:
hellojavacode
时间:
2015-8-1 00:29
你这个代码有错误吧,成员变量不是静态的,你不创建Demo对象的话,是怎么把a输出的?
作者:
rxtm
时间:
2015-8-1 11:48
guohuaxin 发表于 2015-8-1 00:14
不一样的,我运行过
我是说加不加括号都一样,不是说结果一样
作者:
myself123
时间:
2015-8-1 13:13
是从上往下执行的把
作者:
嘉嘉
时间:
2015-8-1 13:35
成员变量是随着类的加载而执行,构造代码块给对象进行初始化,成员变量先执行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2