java 对象创建的过程
2012-03-27 17:40
585 查看
存在了继承关系之后,对象创建过程如下:
1.分配空间。要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配。在分配的空间的时候,会把所有的属性设置为默认值。
2.递归的构造父类对象。
3.初始化本类属性。
4.调用本类的构造方法。
举例介绍对象创建的过程。
假设如下代码:
class A{
int valueA = 100;
public A(){ valueA = 150; }
}
class B extends A {
int valueB = 200;
public B(){ valueB= 250; }
}
public calss TestInherit{
public static void main(Stirng []){
B b = new B();
}
}
我们在main方法中创建了一个b对象,创建的过程如下:
1.分配空间。在分配空间时,会把B、A这两个对象的空间一次性都分配完毕,然后将这两个对象的属性都设置为默认值,这样,valueA、valueB这两个属性都被设置为0。
2.递归构造B对象的父类对象。这里,要构造的就是A类对象。
3.初始化B的属性。即把valueB赋值为200。
4.调用B的构造方法。
其中第2步,创建A类对象,不需要再重新分配空间,需要一下几步:
2.1 递归的构造A类对象的父类对象。创建的步骤与创建A类对象同理。此例中以为A没有任何的父类,没有任何的输出。
2.2 初始化A类属性。把valueA 赋值为100.
2.3 调用A类的构造方法。
总结一下,创建B类对象的步骤一共有5步
1.分配空间
2.初始化A类属性。
3.调用A类的构造方法.
4.初始化B的属性。
5.调用B的构造方法。
1.分配空间。要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配。在分配的空间的时候,会把所有的属性设置为默认值。
2.递归的构造父类对象。
3.初始化本类属性。
4.调用本类的构造方法。
举例介绍对象创建的过程。
假设如下代码:
class A{
int valueA = 100;
public A(){ valueA = 150; }
}
class B extends A {
int valueB = 200;
public B(){ valueB= 250; }
}
public calss TestInherit{
public static void main(Stirng []){
B b = new B();
}
}
我们在main方法中创建了一个b对象,创建的过程如下:
1.分配空间。在分配空间时,会把B、A这两个对象的空间一次性都分配完毕,然后将这两个对象的属性都设置为默认值,这样,valueA、valueB这两个属性都被设置为0。
2.递归构造B对象的父类对象。这里,要构造的就是A类对象。
3.初始化B的属性。即把valueB赋值为200。
4.调用B的构造方法。
其中第2步,创建A类对象,不需要再重新分配空间,需要一下几步:
2.1 递归的构造A类对象的父类对象。创建的步骤与创建A类对象同理。此例中以为A没有任何的父类,没有任何的输出。
2.2 初始化A类属性。把valueA 赋值为100.
2.3 调用A类的构造方法。
总结一下,创建B类对象的步骤一共有5步
1.分配空间
2.初始化A类属性。
3.调用A类的构造方法.
4.初始化B的属性。
5.调用B的构造方法。
相关文章推荐
- JAVA对象的创建过程
- [ java ] java语言中的子类对象和父类对象的创建过程!
- 《对象创建过程中 实例化的顺序》摘自《Thinking in JAVA》
- Java - 对象的创建过程
- 深入理解Java对象的创建过程:类的初始化与实例化
- Java 对象创建的过程和内存的运行机制
- Java中对象的创建过程
- JVM源码分析之Java对象的创建过程
- 【深入理解Java虚拟机】Java内存区域模型、对象创建过程、常见OOM
- 深入理解Java 虚拟机(周志明)笔记(四)——Java对象创建过程
- 帮你深入理解 JAVA 对象创建的过程
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- Java中类加载过程和对象创建过程
- Java对象的创建过程
- java对象的创建过程(摘自《java编程思想》)
- Java创建对象过程中,内存的分配
- java中的对象创建过程
- [置顶] 深入理解Java对象的创建过程:类的初始化与实例化
- Java 创建对象时的初始化过程
- Java:对象创建和初始化过程 推荐