您的位置:首页 > 编程语言 > Java开发

java学习笔记_类建立对象初始化过程分析

2013-11-05 00:14 726 查看
示例:

//声明个人的类
class Person
{
private static String name = "李四";//对属性进行显示初始化
private static int age = 15;
//设置年龄
public void setAge(int age){
this.age = age;
}
//访问年龄
public int getAge(){
return this.age;
}
//静态代码块
static {
System.out.println("This is static Code in Class Person");
}
//构造代码块
{
System.out.println("这是对象的构造代码块!");
name = "叶子";
}
//构造函数
Person(){
System.out.println("name = "+name+",age = "+age);
}
Person(String name,int age){
this.name = name;
this.age = age;
System.out.println("name = "+name+",age = "+age);
}
//静态函数
public static void show1(){
System.out.println("name = "+name+",age = "+age);
}
//一般函数
public void show2(){
System.out.println("name = "+name+",age = "+age);
}
}

class  PersonDemo
{
static{
System.out.println("This is Static Code in Class PersonDemo");
}
public static void main(String[] args) {
Person p1 = new Person("wang",14);
Person p2 = new Person();
p1.show1();
p2.show2();
}
}


执行顺序:

1,首先执行主函数所在类中的Static代码块;

2,然后执行主函数,因为new Person,类,所以会找到Person.class文件加载到内存;

3,执行Person类中的Static代码块,如果有的话先给Person类进行初始化操作;

4,在堆内存中开辟空间,分配内存地址;

5,在堆内存中建立对象的特有属性,并进行默认初始化;

6,对属性进行显示初始化;

7,对对象进行构造代码块的初始化;

8,对对象进行对应的构造函数初始化;

9,将内存地址赋给栈内存的对象变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: