JAVA(静态代码块,构造代码块)

一、静态代码块

随着类的加载而执行,而且只执行一次

作用:用于给类进行初始化

 

例如:

class  StaticCode{

  static{                     //静态代码块

    System.out.println("静态代码块运行");

  }

  static void show(){

    System.out.println("run");

  }

}

class StaticCodeDemo{

    public static void main(String[ ] arge){

      StaticCode.show();          // 调用类方法后,类在初始化的时候会直接执行静态代码块的内容

      StaticCode.show();           //第二次调用时会发现,静态代码块只执行了一次,即静态代码块只在类初始化时执行一次

  }

}

运行结果:

 

 

 

 

二、构造代码块

作用:可以给所有对象进行初始化    (类里的构造函数给对应的对象进行针对的初始化)

例如:

public class Test1 {
        private String name ;
        private  int age;

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

        private String Code; {
            System.out.println("代码块运行");
        }

        Test1(String name){                  //构造函数
            this.name = name;
        }
        Test1(String name,int age){          //构造函数
            this(name);
            this.age = age;
        }

    public static void main(String[] args) {
        Test1 T1 = new Test1("狗",5);
        Test1 T2 = new Test1("猫",6);

    }
}

运行结果:

 

 注意:静态代码块,构造代码块,构造函数的执行顺序:

静态代码块最先执行,它随着类的创建执行,对类进行初始化。

构造代码块在有对象的情况下执行,对创建的对象进行初始化。

构造函数在有对象的时候最后执行,对所对应的对象进行初始化。

 

 

public class Test1 {
private String name ;
private int age;

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

private String Code; {
System.out.println("代码块运行");
}

Test1(String name){ //构造函数
this.name = name;
}
Test1(String name,int age){ //构造函数
this(name);
this.age = age;
}

public static void main(String[] args) {
Test1 T1 = new Test1("",5);
Test1 T2 = new Test1("",6);

}
}
posted @ 2021-03-26 13:34  金芒果决斗  阅读(177)  评论(0)    收藏  举报