局部代碼塊:
作用:控制變量的生命周期;
在程序中,當我們已經使用完 x 后,并且在接下來的代碼中,不會再用到x,那么就沒必要讓x 在內存中占用空間了,這用情況下,可以使用 局部代碼塊,將x及其所設計到的區域封裝為局部代碼塊,他們在程序執行中順序不變,只是在執行完成后消失。
表現形式,以代碼體現如下:
class TestDemo { public static void main(String[] args) { { int x = 9; System.out.PRintln(x); } System.out.println("Hello World !"); } } 構造代碼塊:
作用:它可以給所有對象進行初始化存在于:類中。當類中的構造方法以重載的形式存在時,并且有共同成員變量或共同的方法時,可以通過構造代碼塊對其進行初始化;這樣可以減少代碼的重復!
class Person{ private String name; private int age; { System.out.println("cons code run !"); } Person() // 給對應的對象進行初始化 { System.out.println("Person Now:RUN !"); System.out.println("eat————"); } Person (String name , int age) { this.name = name ; this.age= age; System.out.println(this.name + "————" + this.age); System.out.println("eat————"); } }class ConsCodeDemo{ public static void main(String[] args) { Person p = new Person(); Person p1 = new Person("LiSi" , 23); }}我們可以看到類Person中 重載的構造方法中有共同的代碼System.out.println("eat————");我們可以將他封裝進構造代碼塊,用來給各種進行初始化。
優化后,代碼體現為:
class Person{ private String name; private int age; { System.out.println("cons code run !"); eat(); } Person() // 給對應的對象進行初始化 { System.out.println("Person Now:RUN !"); } Person (String name , int age) { this.name = name ; this.age= age; System.out.println(this.name + "————" + this.age); } public void eat() { System.out.println("eat————"); } }class ConsCodeDemo{ public static void main(String[] args) { Person p = new Person(); Person p1 = new Person("LiSi" , 23); }}靜態代碼塊:
特點:
1. 隨著類的加載而執行,而且只一次。2. 優先于主函數執行。作用:給類進行初始化。
當類中的方法都被靜態了化,并且構造方法被private了,這是我們不能,在將這個類實例化,然而又想讓類增加一些屬性,就可以使用靜態代碼塊:
表現形式,以代碼體現如下:
class StaticCode{ static { System.out.println("A"); } public void show() { System.out.println("Hello World !"); }}class StaticCodeDemo{ static { System.out.println("B"); } public static void main(String[] args) { new StaticCode().show(); } static { System.out.println("C"); }}新聞熱點
疑難解答