黑马程序员技术交流社区
标题:
构造函数中 那些不为人知的东西
[打印本页]
作者:
Good_Man
时间:
2015-11-27 10:37
标题:
构造函数中 那些不为人知的东西
代码如下:
class Person{
{
System.out.println("i am coming");
}
Person(){
System.out.println("Person run");
}
Person(int a){
System.out.println("a="+a);
}
}
当执行 Person person=new Person(); 时,运行结果是什么?
正确答案, i am coming
person runing
解析:
{
System.out.println("i am coming");
}
这一部分 称为 构造代码块,
作用:给对象 进行初始化,
所以 说,new 对象时,它会 执行,且 优先于构造函数,
构造代码块与构造函数的区别:
构造代码块:给所有对象统一初始化,
构造函数:给对应的对象初始化,
作者:
summerhahaha
时间:
2015-11-27 20:50
看不懂看不懂
作者:
bbaijiajinger
时间:
2015-11-27 22:13
构造代码块是给类进行初始化
构造函数是给对象进行初始化
所以每次new出一个对象,构造代码块块就加载一次
作者:
袁有福123
时间:
2015-11-27 22:52
为啥答案里面有person runing这个呢 不懂呢??
作者:
Mr.Cai
时间:
2015-11-27 22:59
构造代码开优先于构造方法执行
作者:
Little_jie
时间:
2015-11-28 08:26
构造代码块优于构造函数执行
作者:
Good_Man
时间:
2015-11-28 08:39
袁有福123 发表于 2015-11-27 22:52
为啥答案里面有person runing这个呢 不懂呢??
呵呵哒,写错了, 是 Person run
作者:
hdhunter
时间:
2015-11-28 10:06
构造代码块这东西挺新鲜。见识了。
作者:
wyasln
时间:
2015-11-28 11:05
还好看过,基础得夯实
作者:
Phy_zhang
时间:
2015-11-28 11:24
谢谢楼主分享,又复习了一遍,不过楼主说得有点夸张了,不为人知......
作者:
xiaolongwang
时间:
2015-11-28 11:35
学习了。。。
作者:
eddy1820
时间:
2015-11-28 23:05
又複習了一遍,感謝分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2