前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java类实例化时执行顺序

Java类实例化时执行顺序

作者头像
samRsa
发布2025-02-24 20:57:46
发布2025-02-24 20:57:46
2600
代码可运行
举报
文章被收录于专栏:java知识点总结
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
复制
package com.ruoyi;

public class Test2 {

    public static void main(String[] args) {
        son sons=new son();
    }
}

class parent{
    private static  int a = 1;
    private static  int b;
    private int c = initc();
    static {
        b=2;
        System.out.println("1.父类静态代码块:赋值b成功");
        System.out.println("1.父类静态代码块:a的值"+a);
        System.out.println("1.父类静态代码块:b的值"+b);
    }
    int initc(){
        System.out.println("3.父类成员变量赋值:---> c的值"+c);
        this.c=12;
        System.out.println("3.父类成员变量赋值:---> c的值"+c);
        return c;
    }
    public parent(){
        System.out.println("4.父类构造方式开始执行---> a:"+a+",b:"+b);
        System.out.println("4.父类构造方式开始执行---> c:"+c);
    }
}

class son extends parent{
    private static  int sa=1;
    private static  int sb;
    private   int sc=initc2();
    static {
        sb=3;
        System.out.println("2.子类静态代码块:赋值sb成功");
        System.out.println("2.子类静态代码块:sa的值"+sa);
        System.out.println("2.子类静态代码块:sb的值"+sb);
    }
    int initc2(){
        System.out.println("5.子类成员变量赋值--->:sc的值"+sc);
        this.sc=12;
        return sc;
    }
    public son(){
        System.out.println("6.子类构造方式开始执行---> sa:"+sa+",sb:"+sb);
        System.out.println("6.子类构造方式开始执行---> sc:"+sc);
    }
}

  执行顺序:

1、父类静态代码块

2、子类静态代码块

3、父类成员变量赋值

4、父类构造方法赋值

5、子类成员变量赋值

6、子类构造方法开始赋值

7、子类构造方式开始执行

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档