zoukankan      html  css  js  c++  java
  • Java类实例化时执行顺序

    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、子类构造方式开始执行

  • 相关阅读:
    Conda 使用笔记
    个人日志笔记软件比较
    CMD 命令笔记
    Joplin 资源汇总
    【NAS】Hexo+Github 搭建博客&基础配置
    【NAS】群晖 WordPress 使用记录
    哈工大计组mooc 第四章 中 测试
    下列软件包有未满足的依赖关系:
    安装ubuntu用Ultraiso制作引导盘便捷启动提示:找到多余一个分区
    ros安装caffe anaconda2之后roscore无法执行
  • 原文地址:https://www.cnblogs.com/torchstar/p/14684147.html
Copyright © 2011-2022 走看看