代码块主要就是通过{}花括号 括起来的代码;
主要分为 普通代码块 构造块 静态代码块三类。后面学到线程还有一个同步代码块,到时候再说;
普通代码块
package com.java1234.chap03.sec07; public class Demo1 { public static void main(String[] args) { int a=1; /** * 普通代码块 */ { a=2; System.out.println("普通代码块"); } System.out.println("a="+a); } }package com.java1234.chap03.sec07; public class Demo1 { public static void main(String[] args) { int a=1; /** * 普通代码块 */ { a=2; System.out.println("普通代码块"); } System.out.println("a="+a); } }
运行输出:
普通代码块
a=2
构造块 构造块作用就是扩展构造器功能 每次实例化对象都会执行构造块里的内容:
package com.java1234.chap03.sec07; public class Demo2 { /** * 构造块 */ { System.out.println("通用构造块!"); } /** * 构造方法一 */ public Demo2(){ System.out.println("构造方法一"); } /** * 构造方法二 */ public Demo2(int i){ System.out.println("构造方法二"); } /** * 构造方法三 */ public Demo2(int i,int j){ System.out.println("构造方法三"); } public static void main(String[] args) { new Demo2(); new Demo2(1); new Demo2(1,2); } }
运行输出:
通用构造块!
构造方法一
通用构造块!
构造方法二
通用构造块!
构造方法三
我们发现 每次调用构造方法 都会先执行 构造块
静态代码块
{}花括号前加static修饰词 在类加载的时候执行 而且只执行一次
package com.java1234.chap03.sec07; public class Demo3 { /** * 静态代码块 类加载的时候执行 */ static{ System.out.println("静态代码块!"); } /** * 构造块 */ { System.out.println("通用构造块!"); } /** * 构造方法一 */ public Demo3(){ System.out.println("构造方法一"); } /** * 构造方法二 */ public Demo3(int i){ System.out.println("构造方法二"); } /** * 构造方法三 */ public Demo3(int i,int j){ System.out.println("构造方法三"); } public static void main(String[] args) { new Demo3(); new Demo3(1); new Demo3(1,2); } }
输出:
静态代码块!
通用构造块!
构造方法一
通用构造块!
构造方法二
通用构造块!
构造方法三