形參和實(shí)參
- 形參:定義方法的時(shí)候,該方法所攜帶的參數(shù)。(只是聲明下有這個(gè)參數(shù),并沒有給分配內(nèi)存地址。只有在被調(diào)用時(shí)才會(huì)分配內(nèi)存單元,在調(diào)用結(jié)束,即刻釋放所分配的內(nèi)存單元。因此,只在方法內(nèi)才有效。)
實(shí)參:調(diào)用方法的時(shí)候,給這個(gè)方法傳遞的參數(shù)值。(預(yù)先創(chuàng)建并賦予確定值)
形參出現(xiàn)在函數(shù)定義中,在整個(gè)函數(shù)體內(nèi)都可以使用, 離開該函數(shù)則不能使用。實(shí)參出現(xiàn)在主調(diào)函數(shù)中,進(jìn)入被調(diào)函數(shù)后,實(shí)參變量也不能使用。
形參和實(shí)參的功能是作數(shù)據(jù)傳送。發(fā)生函數(shù)調(diào)用時(shí), 主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。
1.形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí), 即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。 函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。
2.實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等, 無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應(yīng)預(yù)先用賦值,輸入等辦法使實(shí)參獲得確定值。
3.實(shí)參和形參在數(shù)量上,類型上,順序上應(yīng)嚴(yán)格一致, 否則會(huì)發(fā)生“類型不匹配”的錯(cuò)誤。
4.函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。 即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。 因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化。
靜態(tài)和非靜態(tài)
- 靜態(tài)變量和靜態(tài)方法又稱類變量和類方法
靜態(tài)變量和靜態(tài)方法在程序編譯的時(shí)候就會(huì)運(yùn)行
基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
| 基本數(shù)據(jù)類型和引用數(shù)據(jù)類型 | - |
|---|---|
| 基本數(shù)據(jù)類型 | - |
| 字節(jié)類型byte | |
| 短整型short | |
| 整型int | |
| 長(zhǎng)整型long | |
| 布爾型boolean | |
| 字符型char | |
| 單精度浮點(diǎn)類型float | |
| 雙精度浮點(diǎn)類型double | |
| 引用數(shù)據(jù)類型 | - |
| 類 | |
| 枚舉 | |
| 接口 | |
| 數(shù)組 | |
| 基本數(shù)據(jù)類型的變量存儲(chǔ)的就是數(shù)據(jù)本身的值 | - |
| 引用數(shù)據(jù)類型的變量存儲(chǔ)的是數(shù)據(jù)的地址,這個(gè)地址指向了數(shù)據(jù)的值 | - |
傳值調(diào)用(基本數(shù)據(jù)類型)和引用調(diào)用(引用數(shù)據(jù)類型)
&和&&的區(qū)別
- &和&&都是邏輯運(yùn)算符,都是判斷兩邊同時(shí)為真則為真,否則為假。但是&&當(dāng)?shù)谝粋€(gè)條件為假時(shí),后面的條件都不執(zhí)行了,而&則還是繼續(xù)執(zhí)行,直到整個(gè)條件語(yǔ)句執(zhí)行完為止。
重寫(Override)和重載(Overload)
- 重寫是子類對(duì)父類的允許訪問的方法的實(shí)現(xiàn)過程進(jìn)行重新編寫,返回值和形參都不能改變。
重寫的規(guī)則:
參數(shù)列表必須完全與被重寫方法相同。
返回類型必須與被重寫方法的的相同。
訪問權(quán)限必須比父類中被重寫的方法的訪問權(quán)限更高。
父類的成員方法只能別它的子類重寫。
聲明為final的方法不能被重寫。
聲明為static的方法不能別重寫,但是能夠被再次聲明。
構(gòu)造方法不能別重寫。
如果不能繼承一個(gè)方法,則不能重寫這個(gè)方法。
當(dāng)需要在子類中調(diào)用父類的被重寫方法時(shí),需要使用super關(guān)鍵字。 - 重載是在一個(gè)類里面,方法名字相同,而參數(shù)不同,返回類型可以相同也可以不同。
每個(gè)重載的方法(或構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表。
只能重載構(gòu)造函數(shù)。
重載的規(guī)則:
被重載的方法必須改變參數(shù)列表(參數(shù)個(gè)數(shù)或類型或順序不一樣)。
被重載的方法可以改變返回類型。
被重載的方法可以改變?cè)L問修飾符。
方法能夠在同一個(gè)類中或者在一個(gè)子類中被重載。
無法以返回值類型作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。 - 總結(jié)
重寫是父類與子類之間多態(tài)性的一種表現(xiàn),重載是一類中多態(tài)性的一種表現(xiàn)。
| 區(qū)別點(diǎn) | 重載方法 | 重寫方法 |
|---|---|---|
| 參數(shù)列表 | 必須修改 | 一定不能修改 |
| 返回類型 | 可以修改 | 一定不能修改 |
| 異常 | 可以修改 | 可以減少或刪除,一定不能拋出新的或者更廣的異常 |
| 訪問 | 可以修改 | 一定不能做更嚴(yán)格的限制(可以降低限制) |