首页 > 其他分享 >成员变量、静态代码块、非静态代码块、构造器的初始化顺序

成员变量、静态代码块、非静态代码块、构造器的初始化顺序

时间:2022-09-02 21:11:10浏览次数:53  
标签:初始化 静态 子类 代码 static print 父类

首先说结论吧

静态成员变量->父类静态代码块->子类静态成员变量->子类静态代码块->父类成员变量->父类非静态代码快->父类构造器->子类成员变量->子类非静态代码块->子类构造器

具体例子可以看如下示例

public class TestFuZi {
    public static void main(String[] args) {
        Zi z=new Zi();
    }
}
class Fu{
    private static int i=getNum("(1)i");
    private int j=getNum("(2)j");
    static {
        print("(3)父类静态代码块");
    }
    {
        print("父类非静态代码块,又称为构造代码块");
    }
    Fu(){
        print("(5)父类构造代码块");
    }
    public static void print(String str){
        System.out.println(str+"->"+i);
    }
    public static int getNum(String str){
        print(str);
        return ++i;
    }
}

class Zi extends Fu{
    private static int k=getNum("(6)k");
    private int h=getNum("(7)h");
    static {
        print("(8)子类静态代码块");
    }
    {
        print("(9)子类非静态代码块,又称为构造代码块");
    }
    Zi(){
        print("(10)子类构造器");
    }
    public static int getNum(String str){
        print(str);
        return ++k;
    }
}

该程序的输出结果是:

 

标签:初始化,静态,子类,代码,static,print,父类
From: https://www.cnblogs.com/bestwei/p/16651238.html

相关文章

  • 自解释的代码根本不存在,老老实实写注释吧
    有什么比花时间写注释更令人感到兴奋的事情吗?如果我没有猜错,你可能会说:“不好意思,所有事情都比写注释更令人感到兴奋”。如果有人要你给代码加上注释,对你来说就像是一......
  • 知乎的这个回答火了:如何把一段简单的代码变复杂?
    来自:知乎这问题你应该去问企业级Java架构师。就比如print一句helloworld吧。main函数里print一下?太面向过程,太low了。得封装一个类。叫Printer.Prin......
  • C#-装箱与拆箱/预编译指令与对象初始化器
    装箱与拆箱1.概念装箱:值类型-->引用类型拆箱:引用类型-->值类型两种类型只有存在继承关系的时候,才可能出现装箱或拆箱操作。2.注意事项装箱和拆箱本质上是数据存储在......
  • C#-静态
    静态之字段与属性1.static关键字static关键字,用于修饰类,字段,属性,方法,构造方法等。被static修饰的类称之为“静态类”;被static修饰的成员称之为“静态成员”,被修饰......
  • 不必学会写代码 轻松建立个人博客网站
    在现代社会,网络已经成为我们生活离不开的必需品,而纷繁多样的个人博客网站,也成为了个人展示的最好平台。在以往,想要搭建一个个人博客网站需要较深的专业知识,但得益于软件技......
  • 暑假代码训练项目增删改查(一)
    packagecom.atguigu.p2.bean;/***@DescriptionCustomer为实体对象,用来封装客户信息*@author高槐玉*@date2022年8月29日晚20:45**/publicclassCust......
  • 《Python学习手册第5版》PDF高清版-源代码学习思考
    Python绝对是一门易学难精的语言,打着简单语法的旗号把我忽悠过来,最后发现它背后隐藏了许多复杂的实现。如果不是作为“玩具”语言来学习,一定要看看全方位细致讲解的书......
  • Electron 打包vue 桌面应用 :eosforce github代码 编译遇到很多问题
    eosforce/wallet-desktop:eosforce桌面钱包https://github.com/eosforce/wallet-desktop要会的知识永久使用淘宝镜像代理npmconfigsetregistryhttps://registr......
  • 使用axis2生成webService客户端代码并使用(做个记录)
    背景:公司以前用过一次axis2,调用webservice,但是因为过去大半年的时间当再一次有需求使用axis2的时候发现自己忘得差不多了,这里做一个记录.1)首先根据wsdl生成客户端代......
  • 内部类-多线程-静态代理
    内部类概念:一个类中定义另外一个类,那这个另外的类就是内部类分类:在类的成员位置:成员内部类(如果内部类被static修饰,则这个内部类称之为静态内部类)在......