最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java 核心技術(shù)-12版 卷Ⅰ- 4.4.3 靜態(tài)方法

2023-08-10 21:55 作者:CC挑燈夜讀_谷  | 我要投稿

原文

靜態(tài)方法是不操作對象的方法。例如,Math 類的pow 方法就是一個靜態(tài)方法。以下表達(dá)式

Math.pow(x,a);

會計算 x^a 。它并不使用Math 對象的來完成這個任務(wù)。換句話說,它沒有隱式參數(shù)。

可以認(rèn)為靜態(tài)方法是沒有this 參數(shù)的方法(在一個非靜態(tài)方法中,this參數(shù)指示這個方法的隱式參數(shù)參見4.3.7 節(jié))。

Employee 類的靜態(tài)方法不能訪問id實(shí)例字段,因?yàn)樗⒉徊僮鲗ο?。但是,靜態(tài)方法可以訪問靜態(tài)字段。下面是這樣一個靜態(tài)方法的示例:

要調(diào)用這個方法,需要提供類名:

int n = Employee.advanceId();

這個方法可以省略關(guān)鍵字static 嗎?答案是肯定的。但是這樣一來,你就需要通過Employee類型的對象引用來調(diào)用這個方法。

注釋:可以使用對象調(diào)用靜態(tài)方法,這是合法的。例如,如果harry 是一個Employee對象,那么可以調(diào)用harry.advanceId(); 而不是 Employee.advancedId()。不過,我發(fā)現(xiàn)這種寫法很容易造成混淆,其原因是advanceId方法計算的結(jié)果與harry 毫無關(guān)系。我們建議使用類名而不是對象來調(diào)用靜態(tài)方法。

下面兩種情況可以使用靜態(tài)方法:

  • 方法不需要訪問對象狀態(tài),因?yàn)樗枰乃袇?shù)都通過顯式參數(shù)提供(例如Math.pow)。

  • 方法只需要訪問類的靜態(tài)字段(例如 Employee.advanceId)

C++ 注釋 : Java中的靜態(tài)字段與靜態(tài)方法在功能上與C++相同。但是,語法稍有所不同。在C++中,要使用:: 操作符訪問作用域之外的靜態(tài)字段或靜態(tài)方法,如Math::PI。

術(shù)語“靜態(tài)”有一段不尋常的歷史。起初,C引入關(guān)鍵字static 是為了表示退出一個塊后依然存在的局部變量。在這種情況下,術(shù)語“靜態(tài)”是有意義的:變量一直保留,當(dāng)再次進(jìn)入這個塊時它仍然存在。隨后,static在C中有了第二種含義,表示不能從其他文件訪問的全局變量和函數(shù)。重用關(guān)鍵字static 只是為了避免引入一個新的關(guān)鍵字。最后,C++第三次重用了這個關(guān)鍵字,與之前賦予的含義完全無關(guān),它指示屬于類而不屬于任何特定類對象的變量和函數(shù)。這與Java中這個關(guān)鍵字的含義相同。




java 核心技術(shù)-12版 卷Ⅰ- 4.4.3 靜態(tài)方法的評論 (共 條)

分享到微博請遵守國家法律
贡觉县| 嫩江县| 虞城县| 青岛市| 娄烦县| 修文县| 潞西市| 宁晋县| 漠河县| 桐城市| 肇庆市| 理塘县| 竹北市| 嵊泗县| 英山县| 科技| 泗阳县| 和顺县| 瑞金市| 略阳县| 木兰县| 合肥市| 嘉禾县| 巴彦县| 河南省| 龙海市| 屏山县| 阿合奇县| 郧西县| 江孜县| 马山县| 崇明县| 石河子市| 彭水| 京山县| 固阳县| 鄂托克旗| 万安县| 石楼县| 乌海市| 河津市|