构造函数,构造代码块和静态代码块的先后顺序和运用

时间:2021-12-13 11:54:43

  在自学到java面向对象时,知道有静态代码块,构造代码块和构造函数的存在,如果说构造函数是初始化对象,那么其他2者又是怎么使用,又有什么区别呢。简单的举了下面的例子:

 1 package 面向对象;
 2 
 3  class Child 
 4 {
 5     private String country;
 6     private String name;
 7     Child(String name)//构造函数。
 8     {
 9         this.name=name;
10         System.out.println(this.name);
11     }
12     static //静态代码块
13     {
14         System.out.println("哈哈");
15     }
16     {//构造代码块。
17         country="中国";
18         System.out.println(country);
19     }
20 }
21  public class ChildTest
22  {
23       public static void main(String[] args)
24       {
25       Child XiaoMing=new Child("小明");
26       Child XiaoWang=new Child("小王");
27       }
28  }

打印的结果为构造函数,构造代码块和静态代码块的先后顺序和运用

所以可以看出先后顺序为静态代码块,构造代码块,构造函数。

其中静态代码块只随着类的加载加载一次,一般就用于初始化类。

构造代码块每个对象出现时加载一次,不能改变,一般为初始化对象共同的固有的属性。

构造函数每个对象出现时加载一次,可以加入参数改变变量,一般用于初始化对象的属性。