版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5.6.1 方法的定義方法指定操作對(duì)象數(shù)據(jù)的方式。在得到操作請(qǐng)求時(shí),指定如何做的算法等都要由一種辦法來完成。對(duì)對(duì)象執(zhí)行的操作叫方法。方法的作用有:使程序變得更簡(jiǎn)短、更清晰,有利于程序維護(hù),可以提高程序開發(fā)的效率,提高代碼的重用性。5.6 方 法在封裝一個(gè)類時(shí),不僅要定義出該類的屬性,更為重要的是封裝該類的方法。本節(jié)就來詳細(xì)介紹在類中如何封裝方法。5.6.1 方法的定義方法的語法: () throws 方法名要遵守標(biāo)識(shí)符的規(guī)范,只不過還要遵循自身的命名規(guī)范:通常方法名是一個(gè)動(dòng)詞,如果由兩個(gè)以上單詞組成,則第一個(gè)單詞的首字母應(yīng)小寫,其后單詞首字母大寫,如addStudent等。5.6.1 方法的定
2、義方法的返回值有以下兩種情況。(1)方法沒有返回值,返回類型為void。(2)方法有返回值,必須使用關(guān)鍵字return返回該值,返回類型為該返回值的類型,如:return 表達(dá)式; /注意,表達(dá)式的值必須是確定的值5.6.1 方法的定義下面來了解一下定義方法時(shí)經(jīng)常出現(xiàn)的錯(cuò)誤。1. 返回類型不匹配2. main方法不能有返回值3. 方法最多只能有一個(gè)返回值5.6.2 方法的分類1. 自定義方法自定義方法是在類中為了解決某個(gè)問題而編寫的一段功能代碼片段。自定義方法必須滿足方法的三要素:返回值類型、方法名和行參列表,至于方法體有沒有,需要根據(jù)情況而定。自定義方法的語法為:public 返回值類型 方
3、法名(行參列表) .5.6.2 方法的分類2. 系統(tǒng)提供的方法Java流行的原因之一,就在于它的可重用性,JDK中包含了很多開源組織已經(jīng)寫好的大部分功能的方法類,即創(chuàng)建好的引用數(shù)據(jù)類型的類或幫助我們解決問題的類,如Scanner、Random、Math、System類等(也叫API應(yīng)用程序編程接口類)。只要學(xué)會(huì)使用或重用相應(yīng)的類,就會(huì)使程序開發(fā)速度有質(zhì)的飛躍。5.6.2 方法的分類這里以讀者熟悉的Scanner類為例,請(qǐng)讀者回憶此對(duì)象next()方法的調(diào)用過程。第1步 通過查閱說明書API,將類引入到用戶自己的程序中。例如:import java.util.Scanner;第2步 聲明此類型的
4、變量。例如:Scanner input;第3步 通過new關(guān)鍵字對(duì)變量進(jìn)行初始化。例如:input = new Scanner(System.in);第4步 通過查API知道類的方法功能,然后通過“對(duì)象名.方法名(參數(shù)列表)”的形式來使用。例如:String a = input.next();5.6.3 構(gòu)造方法一個(gè)新對(duì)象初始化的最終步驟是通過new關(guān)鍵字去調(diào)用對(duì)象的構(gòu)造方法,構(gòu)造方法必須滿足以下幾個(gè)條件。(1)方法名必須與類名稱完全相匹配。(2)不要聲明返回類型。(3)不能被static、final、synchronized、abstract、native修飾,且不能有return語句返回值
5、。創(chuàng)建某類的對(duì)象要遵循如下語法:類名 對(duì)象名 = new 類名(); 5.6.3 構(gòu)造方法使用new關(guān)鍵字創(chuàng)建對(duì)象時(shí)要注意以下3個(gè)方面:為對(duì)象實(shí)例分配內(nèi)存空間。調(diào)用構(gòu)造方法。返回對(duì)象實(shí)例的引用。當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí),會(huì)對(duì)其中各種類型的成員變量自動(dòng)進(jìn)行初始化賦值。除了基本數(shù)據(jù)類型之外,其余的變量類型都是引用類型。創(chuàng)建對(duì)象在內(nèi)存中的情況如圖5.16所示。5.6.3 構(gòu)造方法根據(jù)參數(shù)不同,構(gòu)造方法又可以分為以下3類。1. 隱式無參構(gòu)造方法(默認(rèn)構(gòu)造方法)2. 顯式無參構(gòu)造方法3. 顯式有參構(gòu)造方法5.6.4 方法重載對(duì)于3個(gè)打印方法的情況,可以根據(jù)參數(shù)的數(shù)量和類型的不同來做區(qū)分。比如API文檔中對(duì)此所
6、做的說明如圖5.17所示。當(dāng)編寫代碼調(diào)用其中一個(gè)方法時(shí),會(huì)根據(jù)所傳遞的參數(shù)類型選擇合適的方法。這也就是本小節(jié)要探討的方法重載。方法重載指的是一個(gè)類中可以定義有相同的名字但參數(shù)列表(參數(shù)的類型、個(gè)數(shù)、順序)不同的多個(gè)方法。調(diào)用時(shí),會(huì)根據(jù)不同的參數(shù)列表來選擇對(duì)應(yīng)的方法。這里要說明的是方法的返回類型可以不同。類中定義的普通方法、構(gòu)造方法都可以重載。5.6.4 方法重載【例5.10】Person3.java。下面的Person3類定義了兩個(gè)構(gòu)造方法,構(gòu)成構(gòu)造方法重載,其代碼如下:參見教材P163注意:對(duì)于方法中有相同類型而不同數(shù)量的參數(shù)情形,羅列多個(gè)方法并不是最恰當(dāng)?shù)脑O(shè)計(jì),如要?jiǎng)?chuàng)建一個(gè)計(jì)算一組整數(shù)平均
7、數(shù)值的方法,通常會(huì)如下設(shè)計(jì):public class AverageDemo public float average(int n1, int n2) return (float)(n1+n2)/2;public float average(int n1, int n2, int n3) return (float)(n1+n2+n3)/3;public float average(int n1, int n2, int n3, int n4) return (float)(n1+n2+n3+n4)/4;5.6.4 方法重載這3個(gè)重載的方法有相同的功能,Java SE 5.0或以后的版本提供了
8、一個(gè)新功能,稱為可變參數(shù),可以簡(jiǎn)化上述代碼,寫出更通用的方法:public class AverageDemo public float average(int .nums) int sum = 0;for(int x : nums) sum += x;return (float)(sum/nums.length);新的可變參數(shù)可以按照重載方法的方式被調(diào)用,length屬性為內(nèi)建特征,用以返回參數(shù)的數(shù)量。5.6.5 方法的調(diào)用學(xué)習(xí)編程的一個(gè)很重要的基本技能就是要靈活運(yùn)用變量和類的方法調(diào)用。方法的調(diào)用語法格式是:對(duì)象變量名.方法名(實(shí)參列表);其中“實(shí)參列表”由定義的方法的形式參數(shù)決定,形式參數(shù)
9、和實(shí)際參數(shù)兩者間一定要匹配。而且調(diào)用哪個(gè)方法,程序會(huì)到被調(diào)用的方法處運(yùn)行,運(yùn)行完后回到調(diào)用處,被調(diào)用的方法有返回值就返回所需要的值,沒有返回值也會(huì)返回到調(diào)用處,例如,main()方法可以調(diào)用其他的方法,調(diào)用規(guī)則如圖5.18所示。5.6.5 方法的調(diào)用方法的調(diào)用根據(jù)有無參數(shù),分為以下兩類。1. 無參方法的調(diào)用無參方法是個(gè)“黑匣子”,用于完成某個(gè)特定的應(yīng)用程序功能。語法:對(duì)象名.方法名();2. 有參方法的調(diào)用語法:修飾符1 修飾符2 . 返回值類型 方法名(形式參數(shù)列表) 程序代碼;return 返回值;5.6.6 方法參數(shù)及其傳遞問題方法參數(shù)傳遞的過程如圖5.19所示。5.6.6 方法參數(shù)及其
10、傳遞問題1. 基本數(shù)據(jù)類型傳遞2. 引用數(shù)據(jù)類型傳遞(1)數(shù)組傳遞(2)對(duì)象傳遞5.6.6 方法參數(shù)及其傳遞問題對(duì)于許多讀者而言,對(duì)象實(shí)例作為參數(shù)傳遞給方法看起來很像引用傳遞,而且行為上與引用傳遞有很多的共同處。但我們要抓住實(shí)質(zhì),來佐證Java語言是值傳遞的觀點(diǎn):改變傳入內(nèi)容的能力只適用于傳遞對(duì)象,不適用于基本類型值。與對(duì)象類型相關(guān)的實(shí)際值是對(duì)象的引用,而非對(duì)象本身??傊?,“在Java里面參數(shù)傳遞都是按值傳遞”,亦即:按值傳遞是傳遞的值的拷貝,按引用傳遞其實(shí)傳遞的是引用的地址值,所以統(tǒng)稱按值傳遞。5.6.7 理解main()方法語法及命令行參數(shù)main()方法入口是一個(gè)數(shù)組類型的參數(shù),也可以給main()方法傳遞參數(shù),通過命令行在運(yùn)行時(shí)接著參數(shù)即可。【例5.14】CMDParameter.java。代碼如下:參見教材P160編譯上面的代碼,在運(yùn)行的過程中輸入:java CMDParameter 中 國 人5.6.7 理解main()方法語法及命令行參數(shù)當(dāng)運(yùn)行上面的命令時(shí),程序會(huì)將“中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 聲波定位儀器產(chǎn)品供應(yīng)鏈分析
- 箭筒套體育器材項(xiàng)目營銷計(jì)劃書
- 便攜式嬰兒搖床產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 書籍裝訂行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 放大設(shè)備攝影產(chǎn)品供應(yīng)鏈分析
- 畫框掛桿項(xiàng)目運(yùn)營指導(dǎo)方案
- 堅(jiān)果鉗產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 化妝粉產(chǎn)品供應(yīng)鏈分析
- 咖啡杯產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 玩具滑板車市場(chǎng)分析及投資價(jià)值研究報(bào)告
- HJ1188-2021核醫(yī)學(xué)輻射防護(hù)與安全要求
- 【新教材】人教版(2024)七年級(jí)上冊(cè)地理第一章 地球 學(xué)情評(píng)估試卷(含答案)
- 《快樂的一天》(教案)人音版(五線譜)音樂一年級(jí)上冊(cè)
- 《水利水電工程施工一般危險(xiǎn)源LEC法風(fēng)險(xiǎn)評(píng)價(jià)賦分表(指南)》
- 2024-2030年中國3-甲基吡啶市場(chǎng)深度評(píng)估及未來供需格局分析研究報(bào)告
- 大國崛起之中國高鐵課件講解
- 嬰幼兒發(fā)展引導(dǎo)員(三級(jí))理論試題及答案
- 房屋租賃糾紛投訴書范文
- 擺攤分成合同范本寫
- 核心素養(yǎng)視域下高中語文跨學(xué)科教學(xué)的實(shí)踐與思考
- 品管圈QCC成果匯報(bào)降低腦卒中患者睡眠節(jié)律紊亂發(fā)生率
評(píng)論
0/150
提交評(píng)論