您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java中static關鍵字的使用方式”,在日常操作中,相信很多人在Java中static關鍵字的使用方式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中static關鍵字的使用方式”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在Java中,static是靜態修飾關鍵字。用于修飾類的成員方法、類的成員變量,另外可以編寫static代碼塊來優化程序性能;被static關鍵字修飾的方法或者變量不需要依賴于對象來進行訪問,只要類被加載了,就可以通過類名去進行訪問。
方便在沒有創建對象的情況下來進行調用方法或者變量。被static關鍵字修飾的方法或者變量不需要依賴對象來進行訪問,只要類被加載了,就可以通過類名去訪問。
static修飾的方法稱為靜態方法,由于靜態方法不依賴任何對象就能夠訪問,因此靜態方法中不能用this和super關鍵字,不能直接訪問所屬類的實例變量和實例方法,只能訪問所屬類的靜態成員變量和成員方法。代碼示例:
從上面代碼看出,在靜態方法t2調用非靜態成員變量age和非靜態成員方法t1時,系統報錯。同時在靜態方法t3中調用靜態方法t2,編譯通過。得出結論:在靜態方法中不能訪問非靜態成員變量和非靜態成員方法,但在非靜態成員方法中能夠訪問靜態成員方法和靜態成員變量。同時靜態的只能訪問靜態的。
按照是否是靜態的可對類成員變量進行分類:一種是被static修飾的變量,叫做靜態變量或者類變量;另一種是沒有被static修飾的變量,叫實例變量。
靜態變量和非靜態變量的區別:
靜態變量被所有對象共享,在內存中只有一個副本,在類初次加載的時候才會初始化。
非靜態變量是對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個對象擁有的副本互不影響。
static成員變量的初始化順序按照定義的順序進行初始化。
static關鍵字還可用來形成靜態代碼塊來優化程序性能,原因是它的特性:只會在類被初次加載的時候執行一次。
靜態方法只能繼承,不能重寫
代碼示例如下:
上面代碼中在父類和子類中各自定義一個aa方法,在左邊顯示為Override標識;但在父類和子類中各自定義一個static方法test,但并沒有出現Override標識,由此可知用static修飾的方法不能被重寫。同時,如果子類不用static關鍵字修飾,繼承父類時編譯出錯,可知靜態方法只能被靜態方法繼承。
總結
static是一個修飾符,用來修飾成員,被修飾的成員變量稱為靜態變量或類變量。
static修飾的成員被所有的對象共享。
static修飾的成員能直接被類名調用,形式為:類名.靜態成員。
靜態的只能訪問靜態的。
static關鍵字不能改變變量和方法的訪問權限。
靜態成員變量雖然獨立于對象,但是不代表不能通過對象去訪問,所有的靜態方法和靜態變量都可以通過對象訪問,只要訪問權限足夠。
static不允許用來修飾局部變量。
到此,關于“Java中static關鍵字的使用方式”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。