摘要:關(guān)鍵字為跳出方法或返回值??偨Y(jié)如下接收變量方法名實(shí)參列表沒(méi)有返回值,不能使用接收變量。四重載一般來(lái)說(shuō),功能點(diǎn)相同的方法才適合使用重載,重載必須滿足如下要求必須是同一個(gè)類(lèi)方法名必須相同參數(shù)列表不同注意方法重載與返回值無(wú)關(guān)。
一、概述
方法是指人們?cè)趯?shí)踐過(guò)程中為達(dá)到一定目的和效果所采取的辦法、手段和解決方案。
所謂方法,就是解決一類(lèi)問(wèn)題的代碼的有序組合,是一個(gè)功能模塊。編程語(yǔ)言中的方法是組合在一起來(lái)執(zhí)行操作語(yǔ)句的集合。例如,System.out.println 方法,該系統(tǒng)實(shí)際上是為了在控制臺(tái)上輸出的消息執(zhí)行多條語(yǔ)句??梢詫⒎椒ɡ斫鉃椤癈D機(jī)”即放入不同的碟片出現(xiàn)不同的歌曲;或“榨汁機(jī)”即放入不同的水果榨出不同的果汁。
方法就是 給能夠解決問(wèn)題的多行代碼取了一個(gè)名字的功能塊 ,方便我們多次使用。方法的作用:
1)、main方法過(guò)于臃腫
2)、重復(fù)執(zhí)行的代碼塊 命名,方便重復(fù)使用
3)、方便自上而下分解問(wèn)題
4)、方便維護(hù)代碼
現(xiàn)在,我們將學(xué)習(xí)如何定義自己的方法有或沒(méi)有返回值,使用即調(diào)用帶或不帶參數(shù),使用相同的名稱(chēng)重載方法的方法中。
二、定義(method define) 2.1 聲明格式:1)、訪問(wèn)修飾符:方法允許被訪問(wèn)的權(quán)限范圍;
2)、返回值類(lèi)型:如果方法不返回任何值,則指定為void;如果方法具有返回值,
則需要指定返回值的類(lèi)型,并且在方法體中使用 return語(yǔ)句返回值;
3)、方法名:定義方法的名字,必須使用合法的標(biāo)識(shí)符,見(jiàn)名知意。
4)、形參列表:參數(shù)可以有多個(gè),多個(gè)參數(shù)間以逗號(hào)隔開(kāi),每個(gè)參數(shù)由參數(shù)類(lèi)型和參數(shù)名組成,以空格隔開(kāi)。
2.2 現(xiàn)有格式:注意: 方法只能定義在類(lèi)中;同時(shí)方法不能嵌套;方法編寫(xiě)位置與使用無(wú)關(guān)。
2.3 分類(lèi)根據(jù)方法是否帶參、是否有返回值,可以將方法分為:
一個(gè) void方法,它不返回任何值。
2.5 return關(guān)鍵字return 為 跳出方法 或 返回值。
注意:在一個(gè)作用域內(nèi) return 之后不能再存在代碼
return語(yǔ)句:
①return語(yǔ)句可以出現(xiàn)在任何(有返回值和沒(méi)有返回值)方法中
②return語(yǔ)句 在沒(méi)有返回值的方法中,用來(lái)提前結(jié)束方法
③return語(yǔ)句 在有返回值的方法當(dāng)中,有兩個(gè)作用:提前結(jié)束方法,送出結(jié)果。
④一個(gè)方法只能執(zhí)行一條return語(yǔ)句
⑤在一定會(huì)被執(zhí)行的return語(yǔ)句后,寫(xiě)的語(yǔ)句為不可達(dá)語(yǔ)句,程序自動(dòng)檢測(cè)這種語(yǔ)句,永遠(yuǎn)不會(huì)被執(zhí)行到,報(bào)錯(cuò)。
⑥在循環(huán)中無(wú)條件的break后寫(xiě)語(yǔ)句,會(huì)出現(xiàn)不可達(dá)語(yǔ)句
⑦在死循環(huán)(沒(méi)有break來(lái)結(jié)束的死循環(huán))后寫(xiě)語(yǔ)句,會(huì)出現(xiàn)不可達(dá)語(yǔ)句
2.6 思考角度編寫(xiě)一個(gè)方法時(shí),請(qǐng)思考這四個(gè)方面:
1)、確定方法的功能
2)、確定方法的名稱(chēng)
3)、此方法能否獨(dú)立運(yùn)行,不能獨(dú)立,需要外界數(shù)據(jù)參與運(yùn)算,確定形參。
4)、此方法完成后,其結(jié)果是否直接影響調(diào)用處的后續(xù)操作,如果影響,確定返回類(lèi)型,不影響則為 void
2.7 簽名(signature)方法的簽名,確保在一個(gè)類(lèi)中的唯一性。方法的簽名只看 方法名和形參
( 類(lèi)型 個(gè)數(shù) 和順序) ,與修飾符 返回類(lèi)型 和形參名無(wú)關(guān)。
三、調(diào)用(method invoke) 3.1 格式方法定義完成后,若要使用,必須調(diào)用它。在調(diào)用時(shí),調(diào)用的控制權(quán)由方法調(diào)用處轉(zhuǎn)移到方法中,方法遇到 return 或者 }結(jié)束時(shí),將調(diào)用權(quán)交還給調(diào)用處。也就是”從哪里來(lái)到哪里去”的套路。
如調(diào)用以上方法:
①如果該方法返回 void,則調(diào)用該方法必須是一個(gè)語(yǔ)句,不能使用變量接收。
②如果該方法具有返回類(lèi)型,返回一個(gè)值,調(diào)用該方法通常被視為一個(gè)值。
總結(jié)如下:
[接收變量=]方法名([實(shí)參列表])
①void 沒(méi)有返回值,不能使用接收變量。
②存在返回值,接收變量或匿名接收(輸出或者調(diào)用)
3.2 類(lèi)型兼容在調(diào)用方法時(shí),形參與實(shí)參,接收類(lèi)型與返回類(lèi)型和返回值類(lèi)型應(yīng)該保持兼容。
①形參>=實(shí)參
②接收類(lèi)型>=返回值類(lèi)型>=return類(lèi)型
3.3 值傳遞當(dāng)使用一個(gè)參數(shù)調(diào)用一個(gè)方法時(shí),參數(shù)的值拷貝給參數(shù),即拷貝副本。這被稱(chēng)作按值傳遞。
四、重載(method invoke)一般來(lái)說(shuō),功能點(diǎn)相同的方法才適合使用重載,重載必須滿足如下要求:
①必須是同一個(gè)類(lèi)
②方法名必須相同
③參數(shù)列表不同
注意:方法重載與返回值無(wú)關(guān)。
參數(shù)列表不同:
參數(shù)的個(gè)數(shù)不同。
參數(shù)的對(duì)應(yīng)的數(shù)據(jù)類(lèi)型不同。
參數(shù)的順序不同(不同類(lèi)型的可以交換位置)
五、遞歸結(jié)構(gòu)遞歸是一種常見(jiàn)的解決問(wèn)題的方法,即把問(wèn)題逐漸簡(jiǎn)單化。 遞歸的基本思想就是 自己調(diào)用自己 ”,一個(gè)使用遞歸技術(shù)的方法將會(huì)直接或者間接的調(diào)用自己。利用遞歸可以用簡(jiǎn)單的程序來(lái)解決一些復(fù)雜的問(wèn)題。比如:大多數(shù)排序使用的就是遞歸算法。
遞歸結(jié)構(gòu)包括兩個(gè)部分:
① 定義遞歸頭。解答:什么時(shí)候不調(diào)用自身方法。如果沒(méi)有頭,將陷入死循環(huán)。
② 遞歸體。解答:什么時(shí)候需要調(diào)用自身方法。
遞歸的缺陷:
簡(jiǎn)單的程序是遞歸的優(yōu)點(diǎn)之一。但是遞歸調(diào)用會(huì)占用大量的系統(tǒng)堆棧,內(nèi)存耗用多,在遞歸調(diào)用層次多時(shí)速度要比循環(huán)慢的多。所以再使用時(shí)要慎重。
注意:任何可用遞歸解決的問(wèn)題也能使用迭代解決。但遞歸方法可以更加自然地反映問(wèn)題,并且易于理解和調(diào)試,并且不強(qiáng)調(diào)效率問(wèn)題時(shí),可以采用遞歸;
在要求高性能的情況下盡量避免使用遞歸,遞歸調(diào)用既花時(shí)間又耗內(nèi)存。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75406.html
摘要:二面向?qū)ο蟾攀雒嫦蜻^(guò)程的設(shè)計(jì)思想和面向?qū)ο蟮脑O(shè)計(jì)思想我要吃魚(yú)香肉絲蓋飯面向過(guò)程我買(mǎi)菜我洗菜我切菜我放水我點(diǎn)火我做飯我炒菜。。。。 大家好,上次我們講過(guò)了樂(lè)字節(jié)Java編程之方法、調(diào)用、重載、遞歸,接下來(lái)我們將會(huì)進(jìn)入到Java封裝的內(nèi)容。Java編程語(yǔ)言發(fā)展,面向?qū)ο蠛皖?lèi)。 一、編程語(yǔ)言的發(fā)展 機(jī)器語(yǔ)言——直接由計(jì)算機(jī)的指令組成,指令、數(shù)據(jù)、地址都以0和1組成:可以被計(jì)算機(jī)直接識(shí)別并執(zhí)行...
摘要:一構(gòu)造器構(gòu)造方法構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)必會(huì)調(diào)用一個(gè)特殊的方法,這個(gè)方法是初始化對(duì)象信息的為服務(wù)的。構(gòu)造函數(shù)與類(lèi)同名且沒(méi)有返回值。 一、 構(gòu)造器(構(gòu)造方法|構(gòu)造函數(shù)) 在創(chuàng)建對(duì)象時(shí)(new),必會(huì)調(diào)用一個(gè)特殊的方法,這個(gè)方法是初始化對(duì)象信息的為new服務(wù)的。這個(gè)方法稱(chēng)為構(gòu)造器showImg(https://segmentfault.com/img/bVbvjqC?w=490&h=275);...
摘要:大家好,樂(lè)字節(jié)的小樂(lè)又來(lái)了,上一篇是樂(lè)字節(jié)繼承與權(quán)限修飾,也是屬于繼承的,今天繼續(xù)繼承方法重寫(xiě)和關(guān)鍵字。三關(guān)鍵字表示最終的。修飾類(lèi),表示該類(lèi)不能被繼承修飾方法,表示該方法不能被重寫(xiě)修飾屬性,表示常量,值一旦確定不可改變。 大家好,樂(lè)字節(jié)的小樂(lè)又來(lái)了,上一篇是:樂(lè)字節(jié)Java|JavaBean、繼承與權(quán)限修飾,也是屬于Java繼承的,今天繼續(xù)Java繼承-方法重寫(xiě)、super和final...
摘要:在成員方法中或構(gòu)造器中隱式的傳遞。作用如下在構(gòu)造器中只能放在第一行屬性避免屬性和形參局部變量同名,發(fā)生就近原則實(shí)參列表構(gòu)造器的首行調(diào)用其他構(gòu)造器。關(guān)鍵字靜態(tài)的公共的。構(gòu)造塊,先于構(gòu)造器執(zhí)行,每創(chuàng)建一個(gè)對(duì)象執(zhí)行一次。 大家好,我是樂(lè)字節(jié)的小樂(lè),從本文開(kāi)始將會(huì)給大家講述Java繼承,一下是Java繼承的知識(shí)圖譜:showImg(https://segmentfault.com/img/bV...
摘要:大家好,樂(lè)字節(jié)小樂(lè)繼續(xù)為初學(xué)者講述基礎(chǔ)知識(shí)。上次說(shuō)到樂(lè)字節(jié)反射之三方法數(shù)組類(lèi)加載器,這次是反射之四反射相關(guān)操作操作屬性獲取對(duì)象獲取對(duì)象設(shè)置屬性打開(kāi)權(quán)限獲取此屬性調(diào)用方法調(diào)用方法,都是直接對(duì)象方法實(shí)參反射之后,動(dòng)態(tài)調(diào)用方法需要使用即可。 大家好,樂(lè)字節(jié)小樂(lè)繼續(xù)為Java初學(xué)者講述Java基礎(chǔ)知識(shí)。上次說(shuō)到樂(lè)字節(jié)Java反射之三:方法、數(shù)組、類(lèi)加載器,這次是Java反射之四:反射相關(guān)操作 ...
閱讀 772·2021-09-28 09:35
閱讀 2601·2019-08-29 11:25
閱讀 2165·2019-08-23 18:36
閱讀 1864·2019-08-23 16:31
閱讀 2078·2019-08-23 14:50
閱讀 3131·2019-08-23 13:55
閱讀 3299·2019-08-23 12:49
閱讀 2091·2019-08-23 11:46