1 public class Test2 { 2 { //类的初始化块 3 field=200; 4 } 5 public int field=100; //字段的初始值 6 public Test2(int value) { //类的构造方法 7 this.field=value; 8 } 9 10 public Test2(){ 11 12 } 13 public static void main(String[] args) { 14 Test2 obj=new Test2(); //调用方法 15 System.out.println(obj.field); 16 17 obj=new Test2(300); //调用构造方法 18 System.out.println(obj.field); 19 } 20 21 }
以上代码运行结果为: 100 300
1 public class Test2 { 2 3 public int field=100; //字段的初始值 4 { //类的初始化块 5 field=200; 6 } 7 public Test2(int value) { //类的构造方法 8 this.field=value; 9 } 10 11 public Test2(){ 12 13 } 14 public static void main(String[] args) { 15 Test2 obj=new Test2(); //调用方法 16 System.out.println(obj.field); 17 18 obj=new Test2(300); //调用构造方法 19 System.out.println(obj.field); 20 } 21 22 }
以上结果为 200 300
结论: 类的初始化块与字段的初始值优先级为同级,要比较两个方法的优先级,看哪一个在后边,后边的一个起作用。(类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行)
类的构造方法优先级要高于以上两种方法。
原文地址:https://www.cnblogs.com/cxy0210/p/11684802.html
时间: 2024-11-03 21:28:27