java--局部代碼塊——構造代碼塊——靜態代碼塊

http://blog.csdn.net/watermusicyes/article/details/7749712

局部代碼塊:

作用:控制變量的生命週期;

在程序中,當我們已經使用完 x 後,並且在接下來的代碼中,不會再用到x,那麼就沒必要讓x 在內存中佔用空間了,這用情況下,可以使用 局部代碼塊,將x及其所設計到的區域封裝爲局部代碼塊,他們在程序執行中順序不變,只是在執行完成後消失。

表現形式,以代碼體現如下:

  1. class TestDemo  
  2. {  
  3.     public static void main(String[] args)  
  4.     {  
  5.         {  
  6.             int x = 9;  
  7.             System.out.println(x);  
  8.         }  
  9.   
  10.         System.out.println("Hello World !");  
  11.     }  
  12. }  
構造代碼塊:

作用:它可以給所有對象進行初始化
存在於:類中。
當類中的構造方法以重載的形式存在時,並且有共同成員變量或共同的方法時,可以通過構造代碼塊對其進行初始化;這樣可以減少代碼的重複!

  1. class Person  
  2. {  
  3.     private String name;  
  4.     private int age;  
  5.   
  6.     {  
  7.         System.out.println("cons code run !");  
  8.           
  9.     }   
  10.   
  11.     Person() // 給對應的對象進行初始化  
  12.     {  
  13.         System.out.println("Person Now:RUN !");  
  14.         System.out.println("eat————");  
  15.     }  
  16.   
  17.     Person (String name , int age)  
  18.     {  
  19.         this.name = name ;  
  20.         this.age= age;  
  21.         System.out.println(this.name + "————" + this.age);  
  22.         System.out.println("eat————");  
  23.     }  
  24.       
  25. }  
  26. class ConsCodeDemo  
  27. {  
  28.     public static void main(String[] args)  
  29.     {  
  30.         Person p = new Person();  
  31.         Person p1 = new Person("LiSi" , 23);  
  32.     }  
  33. }  
我們可以看到類Person中 重載的構造方法中有共同的代碼System.out.println("eat————");我們可以將他封裝進構造代碼塊,用來給各種進行初始化。

優化後,代碼體現爲:

  1. class Person  
  2. {  
  3.     private String name;  
  4.     private int age;  
  5.   
  6.     {  
  7.         System.out.println("cons code run !");  
  8.         eat();  
  9.           
  10.     }   
  11.   
  12.     Person() // 給對應的對象進行初始化  
  13.     {  
  14.         System.out.println("Person Now:RUN !");  
  15.     }  
  16.   
  17.     Person (String name , int age)  
  18.     {  
  19.         this.name = name ;  
  20.         this.age= age;  
  21.         System.out.println(this.name + "————" + this.age);  
  22.     }  
  23.     public void eat()  
  24.     {  
  25.         System.out.println("eat————");  
  26.     }  
  27.       
  28. }  
  29. class ConsCodeDemo  
  30. {  
  31.     public static void main(String[] args)  
  32.     {  
  33.         Person p = new Person();  
  34.         Person p1 = new Person("LiSi" , 23);  
  35.     }  
  36. }  

靜態代碼塊:

特點:

1. 隨着類的加載而執行,而且只一次。
2. 優先於主函數執行。


作用:給類進行初始化。

當類中的方法都被靜態了化,並且構造方法被private了,這是我們不能,在將這個類實例化,然而又想讓類增加一些屬性,就可以使用靜態代碼塊:

表現形式,以代碼體現如下:

  1. class StaticCode  
  2. {  
  3.     static   
  4.     {  
  5.         System.out.println("A");  
  6.     }  
  7.     public void show()  
  8.     {  
  9.         System.out.println("Hello World !");  
  10.     }  
  11. }  
  12. class StaticCodeDemo  
  13. {  
  14.     static   
  15.     {  
  16.         System.out.println("B");  
  17.     }  
  18.     public static void main(String[] args)  
  19.     {  
  20.         new StaticCode().show();  
  21.     }  
  22.     static  
  23.     {  
  24.         System.out.println("C");  
  25.     }  
  26. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章