黑马程序员技术交流社区
标题:
java中一个类的初始化过程是怎么样的?
[打印本页]
作者:
↘ふ紫铯幽夢
时间:
2014-5-31 10:26
标题:
java中一个类的初始化过程是怎么样的?
本帖最后由 ↘ふ紫铯幽夢 于 2014-5-31 20:06 编辑
class Person{
//成员变量
private String name;
private Integer age;
//构造代码块
{
this.age=30;
}
//构造函数
public Person(){
}
}
复制代码
比如我们写了这样一个类,当我们在new Person()时,这个对象的初始化过程是。比如什么时候默认初始化,显示初始化,构造代码块什么时候执行。
作者:
小钟
时间:
2014-5-31 11:10
看看这个图吧!也许能帮到你!
class Fu {
int num = 1;//最先num默认初始化=0;当调用了Fu类构造函数在赋值为=1;
//Fu类构造代码块;
{
show();//被Zi类覆盖,调用Zi类show()方法;
System.out.println("fu构造代码块!" + num);
}
Fu() {
super();
//Fu类num显示初始化=1;
//Fu类构造代码块;
System.out.println("fu构造方法!" + num);
}
void show() {
System.out.println("fu show方法!" + num);
}
}
class Zi extends Fu{
int num = 2;//最先num默认初始化=0;当调用了Zi类构造函数在赋值为=2;
//Zi类构造代码块;
{
System.out.println("zi构造代码块!" + num);
}
Zi() {
super();
//Zi类num显示初始化=2;
//Zi类构造代码块;
System.out.println("zi构造方法!" + num);
}
void show() {
System.out.println("zi show方法!" + num);
}
}
public class Test9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Zi();
}
}
/*
zi show方法!0 //此时Zi类num还没有被赋值为=2;
fu构造代码块!1
fu构造方法!1
zi构造代码块!2
zi构造方法!2
*/
复制代码
作者:
、海
时间:
2014-6-14 09:56
学习!!!
作者:
沐子松/kf
时间:
2014-6-14 10:50
学习
作者:
DxxD
时间:
2015-3-10 10:56
确实讲得不错,赞一个
作者:
灵韵依存
时间:
2015-11-23 22:03
好好看一下,分析中
作者:
innovator
时间:
2016-6-1 16:29
小钟 发表于 2014-5-31 11:10
看看这个图吧!也许能帮到你!
编程简单明了,虽然对于我这种新手来说省略的权限范围等修饰词看起来不够明晰,不过对默认修饰的理解也是一种启发
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2