- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
匿名阵列-网路资源运用
* 宣告在 for 迴圈中的變數 編譯時就會發生錯誤: 告訴您無法找到變數 i 這是因為在第7 行時, 前面的 for 迴圈區塊已經結束, 因此在 for 中宣告的變數 i 也已經失效了 * 8-3-5 使用匿名陣列作為參數 在呼叫方法時, 如果所需的參數是陣列, 那麼往往就必須要先宣告一個陣列變數, 然後才能傳遞給方法 但如果這個陣列除了作為參數傳遞以外, 並沒有其他的用途, 那麼還要為陣列變數取個名字就有點多餘, 此時就可使用上一章介紹的匿名陣列(沒有名字的實體陣列)來建立並傳遞陣列, 例如底下的程式 * 使用匿名陣列作為參數 使用匿名陣列作為參數 * 匿名陣列 (Anonymous Array) * * 使用匿名陣列作為參數 第 14 行就是建立匿名陣列, 只要使用 new 運算子, 接著陣列元素的型別, 以及一對中括號, 再跟著指定陣列的初值即可 這樣一來, 就不需要為了陣列變數的名字而憂心了 * 8-3-6 遞迴 (Recursive) 在使用方法時, 有一種特別的用法稱為遞迴 簡單來說, 遞迴的意思就是在方法中呼叫自己 例如, 如果要計算乘方, 它的定義如下: * 遞迴 (Recursive) * 遞迴 (Recursive) * 遞迴 (Recursive) Recursive 類別提供了 power() 方法計算乘方, 其計算方法就是依循前面的定義: 第 5 行檢查 y 是否小於或等於 0, 這是為了防範使用者輸入負數或是 0, 如果是, 就直接傳回 1 當 y 大於 0 , 就呼叫自己計算x的 (y - 1)次方, 並傳回 x * power(x, y- 1) * 遞迴 (Recursive) 使用遞迴時, 最重要的一點就是結束遞迴的條件, 也就是不再呼叫自己的條件 以 Power.java 為例, 這個條件就是 y 是否等於 0, 此條件成立時直接傳回 1 , 而不再呼叫自己 如果缺少了這個條件, 程式就會不斷地呼叫自己, 無法結束程式了 這就像是使用迴圈時忘了加上結束迴圈的條件, 使得迴圈沒完沒了一樣 * 分而治之 (Divide and Conquer) 遞迴非常適合用來處理可以分解部分個別處理、再統合結果的問題 像是剛剛的乘方計算, 就是把原來的問題每次縮小 1 , 直到可以直接取得結果之後, 再回頭一步步計算出整體的結果 這種解決問題的方式, 稱為分而治之 (Divide and Conquer) * 8-4 方法的多重定義 (Overloading) 如果仔細閱讀過本書到目前為止的範例程式, 可能已經發現到一件奇怪的事, 我們使用過最多的 System.out.println() 方法顯然和之前所說明的規則抵觸 在 8-3-1 中『方法的參數』這一小節曾經提到, 呼叫方法時, 傳入的參數個數與型別必須和方法的宣告一致 可是在範例程式中, 不論變數 x 是哪一種型別, 都可以傳入 System.out.println() 方法, 列印出變數的內容, 例如 * 方法的多重定義 (Overloading) * 方法的多重定義 (Overloading) 在第 9 ~ 12 行中, 分別傳入 int、double、String、boolean 型別的參數呼叫 System.out.println(), 都可以正常編譯。這個方法的參數怎麼會這麼神奇, 可以同時是多種型別呢? 在這一節中就要討論讓 System.out.println() 方法具有此項能力的機制 -- 多重定義 * 8-4-1 定義同名方法 由於實際在撰寫程式時, 常常會遇到類似意義的動作, 但因為處理的對象型別不一樣而有差異的狀況 因此, Java 允許在同一個類別中, 定義參數個數或是型別不同的同名方法, 稱為多重定義 (Overloading) 其實 Java 並不僅只是以『名稱』來辨識方法, 當 Java 編譯程式時, 也會將參數型別、參數數量等資訊, 一併加到方法的簽名 (Method Signature) 中 當呼叫方法時, Java 就會依據方法簽名, 找出正確的方法 * 定義同名方法 請看看這個例子。為了要撰寫一個計算矩形的方法, 常常會苦惱於要以長、寬來表示矩形, 還是要以左上角及右下角的座標來表示 若是採用多重定義的方式, 就可分別為不同的矩形表示法撰寫其適用的版本, 這樣不論是使用長寬還是座標都可以計算出面積 * 定義同名方法 * 定義同名方法 * 定義同名方法 這個程式在 Test 類別中定義了兩個同名的方法, 分別使用寬高以及座標的方式來描述矩形, 而兩個方法都傳回計算所得的面積 在 main() 方法中, 就利用不同的參數分別呼叫了這兩個版本的同名方法 * 8-4-2 多重定義方法時的注意
您可能关注的文档
最近下载
- 完整版 教科版小学四年级科学 上册:教学计划及进度表.pdf VIP
- 地下车库机电综合管网布置及安装管控要点图集.pdf VIP
- 幼儿园小班科学公开课《颜色变变变》PPT课件附教案及教具打印素材.pptx VIP
- 房地产-工程造价前期估算.建设期贷款利息及流动资金的投资估算.ppt VIP
- 8.2氢氧化钠与二氧化碳反应的实验创新教学设计-2023-2024学年九年级化学科粤版化学下册.docx VIP
- 矿用单体液压支柱说明书.pdf VIP
- 英语语言文学硕士研究生培养方案(优.选).doc VIP
- 《初中心理健康教育教材》.doc VIP
- 《消防设施、器材使用管理制度及维护要求.docx VIP
- 《颜色变变变》幼儿园小班科学PPT课件.pptx VIP
文档评论(0)