91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中static的用法

發布時間:2020-09-17 11:44:35 來源:億速云 閱讀:124 作者:小新 欄目:編程語言

這篇文章主要介紹java中static的用法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

                                                           在《Java編程思想》P86頁有這樣一段話:

“static方法就是沒有this的方法。在static方法內部不能調用非靜態方法,反過來是可以的。而且可以在沒有創建任何對象的前提下,僅僅通過類本身來調用static方法。這實際上正是static方法的主要用途。”

這段話雖然只是說明了static方法的特殊之處,但是可以看出static關鍵字的基本作用,簡而言之,一句話來描述就是:

方便在沒有創建對象的情況下來進行調用(方法/變量)。

很顯然,被static關鍵字修飾的方法或者變量不需要依賴于對象來進行訪問,只要類被加載了,就可以通過類名去進行訪問。

static可以用來修飾類的成員方法、類的成員變量,另外可以編寫static代碼塊來優化程序性能。

static方法

static方法一般稱作靜態方法,由于靜態方法不依賴于任何對象就可以進行訪問,因此對于靜態方法來說,是沒有this的,因為它不依附于任何對象,既然都沒有對象,就談不上this了。并且由于這個特性,在靜態方法中不能訪問類的非靜態成員變量和非靜態成員方法,因為非靜態成員方法/變量都是必須依賴具體的對象才能夠被調用。

但是要注意的是,雖然在靜態方法中不能訪問非靜態成員方法和非靜態成員變量,但是在非靜態成員方法中是可以訪問靜態成員方法/變量的。

舉個簡單的例子:

java中static的用法

在上面的代碼中,由于print2方法是獨立于對象存在的,可以直接用過類名調用。假如說可以在靜態方法中訪問非靜態方法/變量的話,那么如果在main方法中有下面一條語句:

MyObject.print2();

此時對象都沒有,str2根本就不存在,所以就會產生矛盾了。同樣對于方法也是一樣,由于你無法預知在print1方法中是否訪問了非靜態成員變量,所以也禁止在靜態成員方法中訪問非靜態成員方法。

而對于非靜態成員方法,它訪問靜態成員方法/變量顯然是毫無限制的。

因此,如果說想在不創建對象的情況下調用某個方法,就可以將這個方法設置為static。我們最常見的static方法就是main方法,至于為什么main方法必須是static的,現在就很清楚了。因為程序在執行main方法的時候沒有創建任何對象,因此只有通過類名來訪問。

static變量

static變量也稱作靜態變量,靜態變量和非靜態變量的區別是:靜態變量被所有的對象所共享,在內存中只有一個副本,它當且僅當在類初次加載時會被初始化。而非靜態變量是對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個對象擁有的副本互不影響。

static成員變量的初始化順序按照定義的順序進行初始化。

private static int i=0;

以上是java中static的用法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香港| 望奎县| 巫溪县| 溧水县| 德安县| 鄱阳县| 阳新县| 肥西县| 静安区| 尖扎县| 祁阳县| 东丰县| 西吉县| 鹿邑县| 鄂温| 华宁县| 文成县| 宁陕县| 多伦县| 崇信县| 莒南县| 元阳县| 子长县| 无极县| 大名县| 佳木斯市| 寻乌县| 隆安县| 恩平市| 博白县| 丰都县| 旺苍县| 霍山县| 扶余县| 灌云县| 滦南县| 威信县| 新余市| 广灵县| 泸水县| 慈溪市|