类的初始化块,构造方法与字段的初始值
Posted cxy0210
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的初始化块,构造方法与字段的初始值相关的知识,希望对你有一定的参考价值。
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
结论: 类的初始化块与字段的初始值优先级为同级,要比较两个方法的优先级,看哪一个在后边,后边的一个起作用。(类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行)
类的构造方法优先级要高于以上两种方法。
以上是关于类的初始化块,构造方法与字段的初始值的主要内容,如果未能解决你的问题,请参考以下文章
Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺