• java对象的方法属性和代码块的加载顺序


    1.静态变量
    2.静态代码块
    3.局部代码块
    4.构造函数
    5.普通代码块
    6.静态方法
    7.普通方法
    8.普通属性
    for example:
    package com.JavaTest2;
    public class Test extends Test2 {
    public String j = "子类变量";
    public static String i = "子类静态变量";
    static {
    System.out.println("子类静态代码块");
    System.out.println(Test.i);
    }
    {
    System.out.println("子类普通代码块");
    System.out.println(this.j);
    }
    public Test() {
    System.out.println("子类构造方法");
    {
    System.out.println("子类构造代码块");
    }
    }
    public void test() {
    System.out.println("子类普通方法");
    }
    public static void test1() {
    System.out.println("子类静态方法");
    }
    public static void main(String[] args) {
    Test test = new Test();
    //test.test();
    //Test.test1();
    }
    }
    class Test2 {
    public String j = "父类的变量";
    public static String i = "父类静态变量";
    static {
    System.out.println(Test2.i);
    System.out.println("父类静态代码块");
    }
    {
    System.out.println("父类普通代码块");
    System.out.println(this.j);
    }
    public Test2() {
    System.out.println("父类构造方法");
    {
    System.out.println("父类构造代码块");
    }
    }
    public void test() {
    System.out.println("父类普通方法");
    }
    public static void test1() {
    System.out.println("父类静态方法");
    }
    }
    打印结果:
     
    父类静态变量
    父类静态代码块
    子类静态代码块
    子类静态变量
    父类普通代码块
    父类的变量
    父类构造方法
    父类构造代码块
    子类普通代码块
    子类变量
    子类构造方法
    子类构造代码块
    总结:
    1.(静态变量和静态代码块)和(普通代码块和成员变量)看编写的顺序加载 如果静态代码块先加载然后打印静态变量会打印null.普通代码块同理。
    2.局部代码块和局部变量按编写顺序加载,构造代码块同理。
    2.子类和父类的方法只有调用才加载。

  • 相关阅读:
    OpenJudge 6042 雇佣兵
    POJ 1741 树上 点的 分治
    Codevs 1695 Windows2013
    复制书稿
    乘积最大
    编辑距离问题
    石子合并
    最大正方形子矩阵
    选菜
    混合背包
  • 原文地址:https://www.cnblogs.com/Seeasunnyday/p/9101813.html
Copyright © 2020-2023  润新知