代码块主要就是通过{}花括号 括起来的代码;
主要分为 普通代码块 构造块 静态代码块三类。后面学到线程还有一个同步代码块,到时候再说;
普通代码块:仅仅是花括号括起来的代码块,个人感觉作用不大,我们来看一个实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package com.java.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
构造块 构造块作用就是扩展构造器功能 每次实例化对象都会执行构造块里的内容:
我们来看一个实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package com.java.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修饰词 在类加载的时候执行 而且只执行一次
我们看一个实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package com.java.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 ); } } |