- Java與Android移動應用開發:技術、方法與實踐
- 曹化宇
- 1125字
- 2019-12-06 15:39:09
3.2 方法
前面的內容中已經使用了不少方法,如setter方法、getter方法、靜態方法、工廠方法。現在,討論方法。
Java中,定義一個方法的格式如下。
<修飾符><返回值類型><方法名>(<參數列表>) { <方法體> }
其中:
□ <修飾符>,確定方法的訪問形式(如靜態方法)與訪問級別(如私有的、公共的等),稍后會有關于修飾符的更多討論。
□ <返回值類型>,指定方法返回數據的類型,如果方法不需要返回數據,則指定為void。
□ <方法名>,指定方法的名稱,一般會使用首字母小寫,然后每個單詞首字母大寫的形式,如getCounter()、moveTo()等。
□ <參數列表>,代入方法的數據,如果沒有可以空著。參數可以有一個或多個,多個參數使用逗號分隔,每一個參數都應用包含數據類型和參數變量。
□ <方法體>,作為方法的主體部分,是方法完成工作的地方。如果在方法體中需要返回數據,則使用return語句來完成。實際上,即使方法不需要返回值,也可以使用空的return語句隨時終止方法的執行。
下面的代碼在CAuto類中添加一個靜態方法,用于計算百公里的油耗。

代碼中,定義lphkm()方法為公共的靜態方法,這樣就可以使用CAuto類的名稱訪問。兩個參數分別指定行駛的里程和耗油量,類型也都定義為double。返回值類型定義為double,方法中使用return語句返回百公里油耗。
下面的代碼測試lphkm()方法的使用。
public static void main(String[] args) { double l = CAuto.lphkm(1000d, 98d); String s = String.format("百公里油耗為%.2f升",l); System.out.println(s); }

圖3-7 調用方法
代碼執行結果如圖3-7所示。
3.2.1 可變長參數
如果在方法中需要使用零個或多個相同類型的參數,可以通過可變長(variable-length)參數簡化參數的定義。
定義可變長參數時,需要在參數類型后加上...運算符。下面的代碼在CAuto類中添加join()實例方法,用于向車中添加乘員。

join()方法的參數看上去只有一個,但是,在String后面使用了...運算符,這樣,調用join()方法時就可以使用零個或多個String類型的參數。
下面的代碼演示了join()方法的使用。
public static void main(String[] args) { CAuto suv = CAutoFactory.createSuv(); suv.join("Tom","Jerry","John"); }
代碼執行結果如圖3-8所示。
可修改suv.join()方法中的參數數量(零個或多個),并觀察執行結果。

圖3-8 使用可變長參數
3.2.2 重載
方法的重載是指,多個方法具有相同的名稱,但不同的參數定義能夠明顯地區分方法的版本。調用方法時,可以根據代入的參數自動調用最匹配的版本。實際上,CAuto類的構造函數已經使用了重載。
下面的代碼在CAuto類中再添加三個moveTo()方法。

代碼中的moveTo()方法中,第一個版本是前面創建的,包括兩個int類型的參數;第二個版本包括兩個float類型參數;第三個版本使用一個String類型的參數,用于指定目的地名稱;第四個版本使用經緯度指定坐標,兩個參數定義為double類型。
下面的代碼分別調用這四個版本的moveTo()方法。
public static void main(String[] args) { CAuto aerocar = new CAuto("ZX"); aerocar.moveTo(99, 11); aerocar.moveTo(99f, 11f); aerocar.moveTo("那啥地方"); aerocar.moveTo(99.0, 11.0); }

圖3-9 方法的重載
第一個moveTo()方法中,因為默認的整數是int類型,所以會調用參數類型為int的版本。第二個moveTo()方法中,指定參數為float類型,所以調用的是參數為float類型的版本。第三個moveTo()方法中,使用String類型的參數。第四個moveTO方法中,因為默認的浮點數是double類型,所以會調用參數為double的版本。
代碼執行結果如圖3-9所示。
- UNIX編程藝術
- Learn to Create WordPress Themes by Building 5 Projects
- NLTK基礎教程:用NLTK和Python庫構建機器學習應用
- 單片機應用與調試項目教程(C語言版)
- Java零基礎實戰
- Odoo 10 Implementation Cookbook
- ArcGIS for Desktop Cookbook
- OpenCV with Python Blueprints
- App Inventor少兒趣味編程動手做
- PHP+MySQL動態網站開發從入門到精通(視頻教學版)
- Python網絡爬蟲實例教程(視頻講解版)
- H5+移動營銷設計寶典
- jMonkeyEngine 3.0 Beginner’s Guide
- SAP HANA Starter
- Learning WebRTC