【JAVA基础&Python】静态/非静态代码块

/*
*
*   static静态代码块:
*                   调用静态属性的时候 对应类里面的静态代码块就会被直接执行
*                   注意: 只会执行一次,只能调用类内静态结构的(方法/属性)
*                   作用:  初始化类的属性
*
*   非static静态代码块:
*                   只有类被实例化后,才会调用非static静态代码块里面的内容
*                   注意:随着创建对象都会执行一次,可以调用静态结构/非静态的结构的(方法/属性)
*                   作用:创建对象时,对对象的属性进行初始化
*
*   与Python对比:
*               类似于Python中魔法方法__init__(...)都用于初始化类属性
*
*
*
* */


public class daimakuai {

    public static void main(String[] args) {
        // 调用静态属性的时候 对应类里面的静态代码块就会被直接执行
        String desc_txt = Test.desc;
        //  只有类被实例化后,才会调用非static静态代码块里面的内容
        Test txt = new Test();

        txt.info();
    }

}


class Test{

    static String desc = "定义好的代码";


    // static静态代码块
    static {
        System.out.println("static静态代码块");
    }

    // 非static静态代码块
    {
        System.out.println("非static静态代码块");
    }

    // 方法
    public static void info(){
        System.out.println("测试");
    }
}

输出:

static静态代码块
非static静态代码块
测试

原文地址:https://www.cnblogs.com/wanghong1994/p/14142958.html