在自学到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 }
打印的结果为
所以可以看出先后顺序为静态代码块,构造代码块,构造函数。
其中静态代码块只随着类的加载加载一次,一般就用于初始化类。
构造代码块每个对象出现时加载一次,不能改变,一般为初始化对象共同的固有的属性。
构造函数每个对象出现时加载一次,可以加入参数改变变量,一般用于初始化对象的属性。