zoukankan      html  css  js  c++  java
  • 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.子类和父类的方法只有调用才加载。

  • 相关阅读:
    设计模式:解释器模式???
    设计模式:访问者模式(Visitor)
    设计模式:享元模式(Flyweight)
    NHibernate
    设计模式:中介者模式(Mediator)
    设计模式:职责链模式(Chain Of Responsibility)
    反射
    设计模式:命令模式(Command)
    设计模式:桥连模式(Bridge)
    设计模式:组合模式(Composite)
  • 原文地址:https://www.cnblogs.com/Seeasunnyday/p/9101813.html
Copyright © 2011-2022 走看看