JAVA代碼塊你了解嗎
更新時間:2021年09月03日 10:41:54 作者:大忽悠愛忽悠
這篇文章主要介紹了舉例說明Java中的代碼塊,包括靜態(tài)屬性和非靜態(tài)屬性以及構造函數等相關的執(zhí)行先后,需要的朋友可以參考下
非靜態(tài)代碼塊:沒有static修飾的代碼塊
- 可以有輸出語句
- 可以對類的屬性聲明進行初始化操作
- 可以調用靜態(tài)或者非靜態(tài)的變量或方法
- 若有多個非靜態(tài)的代碼塊,那么按照從上到下的順序依次執(zhí)行
- 再次創(chuàng)建對象的時候都會執(zhí)行,且先于構造函數執(zhí)行
代碼:
public class Per { { System.out.println("非靜態(tài)代碼塊1"); } { System.out.println("非靜態(tài)代碼塊2"); } { System.out.println("非靜態(tài)代碼塊3"); } Per() { System.out.println("per的構造函數"); } }
靜態(tài)代碼塊:用static修飾的代碼塊
- 可以有輸出語句
- 可以對類的屬性聲明進行初始化操作
- 不可以對非靜態(tài)的屬性進行初始化。 即不可以調用非靜態(tài)的屬性和方法。
- 若有多個靜態(tài)的代碼塊,則按照從上到下的順序依次執(zhí)行。
- 靜態(tài)代碼塊的執(zhí)行要先于非靜態(tài)代碼塊。
- 靜態(tài)代碼只執(zhí)行一次。
代碼:
public class Per { static { System.out.println("靜態(tài)代碼塊1"); } static{ System.out.println("靜態(tài)代碼塊2"); } { System.out.println("非靜態(tài)代碼塊"); } Per() { System.out.println("per的構造函數"); } }
用處
實際開發(fā)中,靜態(tài)代碼塊用的多一些,用來初始化類的靜態(tài)屬性
匿名內部類沒有類名,就不能顯示的new方法創(chuàng)建對象,如果還要在構造器中初始化屬性就沒有辦法了,用匿名內部類代碼塊代替構造方法
代碼:
public class MAIN { public static void main(String[] args) { Per p=new Per() { //匿名內部類是繼承了當前類和結構的子類 {super.name="大忽悠";} }; System.out.println(p.name); } }
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Spring的@Scheduled 如何動態(tài)更新cron表達式
這篇文章主要介紹了Spring的@Scheduled 如何動態(tài)更新cron表達式的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07IDEA巧用Postfix Completion讓碼速起飛(小技巧)
這篇文章主要介紹了IDEA巧用Postfix Completion讓碼速起飛,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08Java中的FileInputStream是否需要close問題
這篇文章主要介紹了Java中的FileInputStream是否需要close問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12利用IDEA社區(qū)版創(chuàng)建SpringBoot項目的詳細圖文教程
大家應該都知道Idea社區(qū)版本,默認是不能創(chuàng)建SpringBoot項目的,下面這篇文章主要給大家介紹了關于利用IDEA社區(qū)版創(chuàng)建SpringBoot項目的詳細圖文教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-04-04Mapper層繼承BaseMapper<T>需要引入的pom依賴方式
這篇文章主要介紹了Mapper層繼承BaseMapper<T>需要引入的pom依賴方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01