zoukankan      html  css  js  c++  java
  • Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序

    结论:执行的大致顺序如下,

      (1) 在一个不存在继承的类中:初始化static变量,执行static初始化块-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法

      (2)在一个存在继承的类中:初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。

     测试代码如下:(通过断点查看代码执行顺序)

    public class Student {
        public static int age=11;
        public static String name="lucky";
        public String address="天台";
        static {
            System.out.println("我是静态代码块");
        }
        public Student(){
            System.out.println("我是构造函数");
        }
        public static void test(){
            System.out.println(name);
            System.out.println(age);
        }
    }
    
    public class Sequence {
        public static void main(String[] args) {
            //Student.test();
            Student student=new Student();
        }
    }

    转自:https://blog.csdn.net/yuxin6866/article/details/52245765

  • 相关阅读:
    go操作windows进程相关
    HTML5-格式化
    HTML5-属性
    关于sublime建立python工程的说明
    在Windows系统中安装matplotlib,需要注意的问题
    WPF combobox数据绑定和数据获取
    String的用法——其他功能
    String的用法——获取功能
    String的用法——判断功能
    String的用法——构造方法
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10294369.html
Copyright © 2011-2022 走看看