代码快
所谓代码快是指是哦那个{} 括号括起来的一段代码,其中,同步代码快以后在解释
1.普通代码块
普通代码块就是直接在方法或是语句中定义的代码块
package test6; public class CodeDemo01 { public static void main(String args[]) { //定义一个普通代码快 int x=30; System.out.println("普通代码块----> x=" +x); } int x=100; System.out.println("普通代码块----> x=" +x); }
2.构造块
构造代码块是直接写在类中的代码块。
package test6; class Demo { public Demo() { // 定义构造方法 System.out.println("2.构造方法"); } { // 定义构造块 System.out.println("1.构造块"); } } public class CodeDemo01 { public static void main(String args[]) { new Demo(); // 实例化对象 new Demo(); new Demo(); } }
结果:
1.构造块
2.构造方法
1.构造块
2.构造方法
1.构造块
2.构造方法
可以发现,构造块优先于构造方法执行,而且每次实例化对象时都会执行构造块中的代码。
3.静态代码块
静态代码快是使用static关键字声明的代码快
例子:静态代码块
package test7; class Demo { { System.out.println("1.构造块"); //优先2 } static { System.out.println("0.静态代码块"); // 优先1 } public Demo() { System.out.println("2.构造方法"); //优先3 } } public class CodeDemo03 { static { System.out.println("在主方法所在类中定义代码快。"); } public static void main(String args[]) { new Demo(); new Demo(); new Demo(); } }
结果:
在主方法所在类中定义代码快。
0.静态代码块
1.构造块
2.构造方法
1.构造块
2.构造方法
1.构造块
2.构造方法
注意:
1.优先顺序,静态--->构造块----->构造方法
2.不管有多少个对象产生,静态代码块只执行一次
*******************************************
静态代码块的妙用:
静态代码快优先于主方法(main)的执行:
public class CodeDemo04{ static { system.out.println("hello word!"); system.exit(2); } }
另外一个hello word 程序。可以不用main程序