美文网首页
初始化顺序

初始化顺序

作者: 筑梦丶 | 来源:发表于2018-10-08 18:54 被阅读0次
class Glyph {
    void draw() { System.out.println("Glyph.draw()"); }
    Glyph() {
        System.out.println("Glyph() before draw()");
        draw();
        System.out.println("Glyph() after draw()");
    }
}

class RoundGlyph extends Glyph {
    private int radius = 1;
    RoundGlyph(int r) {
        radius = r;
        System.out.println("RoundGlyph.RoundGlyph(), radius = " + radius);
    }
    void draw() {
        System.out.println("RoundGlyph.draw(), radius = " + radius);
    }
}

public class PolyConstructors {
    public static void main(String[] args) {
        new RoundGlyph(5);
    }
} /* Output:
Glyph() before draw()
RoundGlyph.draw(), radius = 0
Glyph() after draw()
RoundGlyph.RoundGlyph(), radius = 5
*///:~
初始化的实际过程是:

1.在其他任何事物发生之前,将分配给对象的储存空间初始化成二进制的零。
2.调用基类构造器,此时,调用被覆盖的方法(在调用子类构造器之前调用)。
3.按照声明的顺序调用成员的初始化方法。
4.调用导出类的构造器主体。

编写构造器时有一条准则:用尽可能简单的方法使对象进入正常状态;如果可以的话,避免调用其他方法。

相关文章

  • [转]Effective C++学习笔记:初始化列表中成员列出的

    类成员的默认初始化顺序是按照声明顺序进行, 如果使用初始化列表初始化成员变量, 则必须按照成员变量的声明顺序进行;...

  • C++对象模型5——对象的构造/析构

    对象的构造/析构顺序 初始化虚基类,按照继承顺序,从左到右,从最深到最浅。 初始化按照继承顺序初始化父类,如果父类...

  • 顺序表的操作

    顺序表的操作 这里先定义个顺序表 顺序表初始化 定义bool类型函数 initList() ,初始化成功为true...

  • java类初始化机制

    初始化顺序 无继承类初始化 初始化顺序静态变量/静态代码块 -> 成员变量/代码块 -> 构造函数其中,静态变量与...

  • 调整驱动加载顺序

    Linux内核驱动程序初始化顺序的调整(1) 如何调整Linux内核启动中的驱动初始化顺序

  • React专题9: 生命周期函数

    初始化和页面刷新 执行顺序 state变化 执行顺序 props变化 执行顺序 shouldComponentUp...

  • 2020-05-19

    go 文件代码初始化顺序

  • 对象的初始化顺序

    分析代码来源:胖胖-对象初始化顺序 结论: 首先指出初始化顺序不一定严格按照以上顺序进行,如果静态代码块写在静态变...

  • Java中类的加载顺序

    以前对类的加载顺序,静态变量的初始化,普通变量的初始化,构造函数的初始化,构造代码块,静态代码块的初始化顺序一直搞...

  • 14.对象的初始化顺序

    对象初始化顺序 1、初始化属性 2、调用构造方法 结果:

网友评论

      本文标题:初始化顺序

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