美文网首页
java:类的初始化顺序

java:类的初始化顺序

作者: Go_6a7c | 来源:发表于2019-04-07 10:42 被阅读0次

最近对自己的一些小毛病越来越不能容忍了,喝喝~与其说是不能容忍,倒不如说那些毛病已经开始阻碍到自己正常的工作与学习。除了熬夜、工作有点拖沓外,还有个就是学习不做记录,当脑海中暂时理顺了思路,觉得自己理解了,就以为自己掌握了。一觉醒来忘得七七八八,过几天再遇到又是从头学起,想想的确挺恶心的。

在骑着蜗牛向前跑的路上,一点点记录,积累,不断迭代..........

这是第一次在简书上写文章,选择简书只是因为它的简约,我一贯比较喜欢的风格。貌似有点跑偏了,哈哈,切入正题。

java的类在使用前都必须初始化,这点程序员都知道,但具体的初始化顺序我是今天才搞明白,记住三条规则就行了:

1. java的子类在执行任何操作之前,它的父类必须先被初始化。

2. 在执行子类的构造函数时,会先执行父类的构造函数。

3. 在类初始化时,先初始化成员变量,再调用构造函数。

代码说明

上面的代码很简单,Son继承了Father,在main中执行print方法。整个代码执行的流程如下:

1.先运行到第4行,new一个Son对象。

2.然后运行到22行,执行Son的构造函数。(此时Son的构造函数还未执行)

3.立刻又运行到14行,准备执行Father的构造函数。(因为初始化子类前必须先初始化父类,此时Father的构造函数也没执行)

4.然后运行到11行,执行11、12行两个成员变量初始化。(一个类先初始化成员变量,再执行构造函数。再这里系统给Father中的name和age两个变量分配了存储空间,并赋值)

5.紧接着运行到14行,执行Father的构造函数,这里是无参构造函数。(至此,父类初始化完成)

6.然后运行到19行,先初始化Son的成员变量。(这里系统仅仅为Son的成员变量分配存储空间,里面的值是默认的,没什么意义)

7.之后运行22行Son的构造函数,给Son的两个变量赋值。(至此,Son的初始化完成)

8.接下来运行第5行,执行son的print方法,一直往下执行。

相关文章

  • 类初始化和加载过程

    一、对象的初始化顺序: java类加载器加载类的顺序:http://blog.csdn.net/crazycode...

  • 构造器内部的多态方法的行为

    上一篇 :Java类初始化顺序 上一节我们简单总结了类的初始化顺序。父类(静态变量、静态初始化块)>子类(静态变量...

  • JAVA的类加载顺序

    理解关于java类的加载顺序 首先来捋一捋java类的加载顺序吧 父类静态代码块 》》静态代码初始化,静态属性(带...

  • Java类的初始化顺序

    Java类的初始化顺序 (静态变量、静态代码块)> 类里的 main()(如果有的话) > (变量、初始化块) >...

  • Java类加载与初始化

    今天复习了一下java类加载时的初始化顺序,先记录一下心得,代码后续补上。 类加载时的初始化顺序 1、一般来说,类...

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • java构造器初始化与清理

    java构造器初始化先后顺序: 若此类继承于某基类,则先初始化基类,以此类推,找到最基本的父类,先对基类进行初始化...

  • 设计模式——工厂,策略,建造者

    Java 类初始化顺序基本分为以下几种:静态块,初始化块,静态方法,构造函数块,静态变量,成员变量对于块顺序,静态...

  • java 类初始化 顺序

    Java 类初始化介绍 java语言在使用过程中最先开始就是初始化,在工作中如果遇到什么问题需 要定位往往到最后也...

  • java类初始化顺序

    1.静态代码块,静态变量,按代码顺序先后执行.2.构造代码块,成员变量,按代码顺序先后执行.3.先执行构造块或成员...

网友评论

      本文标题:java:类的初始化顺序

      本文链接:https://www.haomeiwen.com/subject/oswjiqtx.html