點擊查看:2015計算機(jī)等級考試二級Java入門教程章節(jié)匯總
點擊查看:2015計算機(jī)等級考試二級Java入門教程第五章匯總
5.6 方法的重載
Java允許你在一個類中用同一個名字定義幾個方法,只要每個方法有一套惟一的參數(shù)就可以。這被稱作方法重載(method overloading)
方法的名字與所屬類型以及參數(shù)的順序構(gòu)成了方法的簽名(signature),在類中每個方法的簽名必須是不完全一樣的,這樣才能使編譯器準(zhǔn)確地判斷在一個特定位置上你調(diào)用的是哪個方法。
注意,方法返回值的類型對于方法的簽名沒有任何作用。你不能通過兩個方法的返回值的類型來區(qū)分它們。這是因為當(dāng)你調(diào)用一個方法時,返回值的類型是不顯示的。例如,假定你編寫了這樣一條語句;
math.round(value);
由子上面這條語句丟棄了round()方法產(chǎn)生的值,所以它并沒有什么意義,但是它說明了為什么返回值類型不能作為方法簽名的一部分。對于編譯器來說,從這條語句中沒有辦法知道方法round返回的是什么類型。因此,如果有幾個不同版本的方法round(),并且返回值類型是它們特征的惟一區(qū)別,那么編譯器就無法確定你使用的是哪個版本的round().
有很多情況下,使用方法重載是十分便利的。你己經(jīng)看到過,標(biāo)準(zhǔn)類Math中包含兩個版本的方法round(),一個接受float類型的自變量,另一個則接受double類型的自變量,F(xiàn)在你可以知道,方法重載使這種定義成為可能。在兩個操作基本相同時,若要求必須對每個round()版本使用不同的名字,將是相當(dāng)令人煩厭的。使用重載的最多場合是為一個類編寫多個構(gòu)造函數(shù),F(xiàn)在就讓我們來介紹這種情況。
多重構(gòu)造函數(shù)
構(gòu)造函數(shù)如同類中的其他方法一樣,也可以進(jìn)行重載。在大多數(shù)情形下,需要用不同的初始數(shù)據(jù)集構(gòu)造一個類的若干個對象。如果我們考慮一下Sphere二類,為它設(shè)想一種需求,用各種方式定義sphere對象。你可能希望一個構(gòu)造函數(shù)只接受一個點的坐標(biāo)值(x,y, z),并且用默認(rèn)的半徑值1.0.構(gòu)造一個Sphere對象。另一種是你可能希望建立一個默認(rèn)的Sphere,半徑為1.0,位于原點,所以,根本不需要指定自變量。這就需要兩個構(gòu)造函數(shù),
而我們己經(jīng)編寫了其中的一個。
相關(guān)推薦:
2015計算機(jī)等級考試二級Java入門教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |