zoukankan      html  css  js  c++  java
  • java --- 对象的创建过程

    java 对象创建的过程

    存在了继承关系之后,对象创建过程如下:

    1.分配空间。要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配。在分配的空间的时候,会把所有的属性设置为默认值。

    2.递归的构造父类对象。

    3.初始化本类属性。

    4.调用本类的构造方法。

    举例介绍对象创建的过程。

    假设如下代码:

     1 class A{
     2 
     3       int valueA = 100;
     4 
     5       public A(){  valueA = 150; }
     6 
     7 }
     8 
     9 class B extends A {
    10 
    11      int valueB = 200;
    12 
    13     public B(){  valueB= 250; }
    14 
    15 }
    16 
    17 public calss TestInherit{
    18 
    19      public static void main(Stirng []){
    20 
    21           B b = new B();
    22 
    23     }
    24 
    25 }

    我们在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的构造方法。

  • 相关阅读:
    【hihocoder1255 Mysterious Antiques in Sackler Museum】构造 枚举
    【hihocoder 1257 Snake Carpet】构造
    【HDU 5572 An Easy Physics Problem】计算几何基础
    【hihocoder 1258 Osu! Master】
    Coder-Strike 2014
    [不完全动态凸包]SGU277
    [成都七中]GCD
    [某模拟赛]鸡腿の乒乓
    [TCSRM518Div1]Nim
    BZOJ3289【莫队算法+树状数组+离散化】
  • 原文地址:https://www.cnblogs.com/plxx/p/4524141.html
Copyright © 2011-2022 走看看