Java中对象的初始化生成过程

Java是面向对象的一种语言,在Java对象生成的过程,涉及子类和父类的加载、静态成员变量的初始化、子类和父类对象的初始化等过程,其具体过程通过下述代码来说明。

该段代码的执行结果为:

c1: static Constructor Cc3: normal Constructor Ca1: static Constructor Ab1: static Constructor Ba2: normal Constructor Aa3: normal Constructor AConstructor Baseb2: normal Constructor Bb3: normal Constructor BConstructor Derivedend

对上述执行结果进行分析,其生成过程为:

1)程序执行时,首先加载main函数所在的类Test,由于Test类包含静态成员变量c1,因此对该变量进行初始化,调用其构造函数。

2)由于c2是Test类的对象成员变量,且此处并没有初始化Test类对象,因此不需要初始化c2。

3)执行main函数。

4) main函数声明且初始化变量c3,因此调用其构造函数。

5)main函数声明且初始化变量derived,此过程可具体划分为以下步骤:

  a) 加载Derived类,由于其继承自Base类,因此还需加载Base类。

  b) 类加载完成后,由父类至子类,先后完成其中静态成员变量的初始化,因此先后调用a1,b1的构造函数。

  c) 静态成员变量初始化后,由父类至子类,先后完成类对象的初始化。在类对象的初始化过程中,首先初始化对象成员变量,再调用构造函数。因此,在Base类,首先调用a2的构造函数,再调用Base的构造函数,在构造函数中,调用a3的构造函数;而在Derived类,首先调用b2的构造函数,再调用Derived的构造函数,在构造函数中,调用b3的构造函数。

6) 综上,完成了整个对象的初始化生成过程和程序运行。

❤提问/互动请留言,可直接在最底右下方"写留言即可"

❤Java初高级一起学习分享,共同学习才是最明智的选择,喜欢的话可以我的学习群64弍46衣3凌9,或加资料群69似64陆0吧3(进群备注平台名)

❤如果觉得写得不错请点击“订阅”,每天更新全新的内容!

❤你们的喜欢和关注就是我最大的动力支撑!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在之前 因为简书字数限制,完整版地址:https://www.zybuluo.com/hainingwyx/no...
    hainingwyx阅读 14,010评论 0 41
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,663评论 0 5
  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,139评论 0 6
  • 准确来说,清明节不是用来玩的,而是用来祭奠自己祖祖辈辈的日子,有几个人和我一样呢? 今天清明节,山路不好走,开车小...
    友德经济阅读 135评论 0 1
  • 2018等待区块链技术突破! 牛市的号角~技术突破 熊市的号角~全球监管+技术爆破 随着区块链3.0的脚步,越来越...
    城南说阅读 305评论 0 0