/* * * 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静态代码块
测试