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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数,构造代码块和静态代码块的先后顺序和运用相关的知识,希望对你有一定的参考价值。

  在自学到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  }

打印的结果为技术分享

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

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

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

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

以上是关于构造函数,构造代码块和静态代码块的先后顺序和运用的主要内容,如果未能解决你的问题,请参考以下文章

构造代码块局部代码块和静态代码块的定义作用和区别

java静态代码块,构造方法,构造代码块的执行先后顺序

子类继承父类,那么各代码块的执行顺序为:

java中成员变量代码块构造函数运行顺序

关于构造代码块局部代码块和静态代码块的作用和区别

java类创建时里面成员执行的先后顺序