您好,欢迎访问一九零五行业门户网

三个案例,解读静态代码块和构造代码块

一、对静态代码块和非静态代码块进行简单的总结
1.静态代码块:
静态代码块是在当类被载入(内存)时最先被调用的,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。
2.非静态代码块:
非静态代码块是在当类的对象被创建载入(内存)时最先被调用的,每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调用。
3.静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。
 二、相关示例演示
 1 public class cc { 2     public static void main(string[] args) { 3         test p=new test(); 4     } 5 } 6  7 class test { 8     test() {  //在类对象创建的时候就开始执行。简称创建即执行。 9         system.out.println(这是构造函数);10     }11 12     {  //构造代码块,执行在构造函数之前,每当在创建类对象的时候都执行。13         system.out.println(这是构造代码块);14     }15     16     static {  //静态代码块,最早执行,且值执行一次。17         system.out.println(这是静态代码块);18     }19 }
打印结果:
演示当被调用两次的时候,会发生什么打印结果。加深对静态代码块的理解。
 1 public class ccc { 2 public static void main(string[]args) 3 { 4     mytest p=new mytest(); 5     mytest p2=new mytest();//两次调用 6 } 7 } 8 class mytest{ 9     10     mytest(){11         system.out.println(这是构造函数);12     }13     14     {15         system.out.println(这是构造代码块);16     }17     18     static{19         system.out.println(这是静态代码块);20         21     }22 }
打印结果如下:
介绍一个含参的例子:
 1 class cccc {   2     public static void main(string[] args) {   3         new person(77);  4         new person();  5     }  6 }   7    8 class person {   9       10     person() {  11         system.out.println(a);  12     }  13   14       15     person(int x) {  //注意带参数了!!  16         system.out.println(x);  17     }  18   19     static {  20         system.out.println(b);  21     }  22   23     {  24         system.out.println(c);  25     }  26 }
打印结果:
以上就是三个案例,解读静态代码块和构造代码块的详细内容。
其它类似信息

推荐信息