1.5 成员方法的声明和调用,形参,实参
聲明成員方法
聲明成員方法可以定義類的行為,行為表示一個對象能夠做的事情或者能夠從一個對象取得的信息。類的各種功能操作都是用方法來實現(xiàn)的,屬性只不過提供了相應的數(shù)據(jù)。一個完整的方法通常包括方法名稱、方法主體、方法參數(shù)和方法返回值類型,其結構如圖 1 所示。
成員方法一旦被定義,便可以在程序中多次調(diào)用,提高了編程效率。聲明成員方法的語法格式如下:
public class Test {[public|private|protected][static]<void|return_type><method_name>([paramList]) {// 方法體} }注意:上述語法中,中括號“[]”中的部分表示可以省略,豎線“|”表示“或”,例如 public|private,說明可以使用 public 或 private 關鍵字,但是兩個關鍵字不能同時出現(xiàn)。
上述代碼中一個方法包含 4 部分:方法的返回值、方法名稱、方法的參數(shù)和方法體。其中 retum_type 是方法返回值的數(shù)據(jù)類型,數(shù)據(jù)類型可以是原始的數(shù)據(jù)類型,即常用的 8 種數(shù)據(jù)類型,也可以是一個引用數(shù)據(jù)類型,如一個類、接口和數(shù)組等。
除了這些,一個方法還可以沒有返回值,即返回類型為 void,像 main() 方法。method_name 表示自定義的方法名稱,方法的名稱首先要遵循標識符的命名約定,除此之外,方法的名稱第一個單詞的第一個字母是小寫,第二單詞的第一個字母是大寫,依此類推。
paramList 表示參數(shù)列表,這些變量都要有自己的數(shù)據(jù)類型,可以是原始數(shù)據(jù)類型,也可以是復雜數(shù)據(jù)類型,一個方法主要依靠參數(shù)來傳遞消息。方法主體是方法中執(zhí)行功能操作的語句。其他各修飾符的含義如下。
- public、private、protected:表示成員方法的訪問權限。
- static:表示限定該成員方法為靜態(tài)方法。
- final:表示限定該成員方法不能被重寫或重載。
- abstract:表示限定該成員方法為抽象方法。抽象方法不提供具體的實現(xiàn),并且所屬類型必須為抽象類。
例 1
為上一節(jié)創(chuàng)建的學生類 Student 添加一個可以返回學生信息字符串的方法。代碼如下:
上述代碼創(chuàng)建了一個名稱為 printInfo 的方法,其返回值類型為 StringBuffer(引用數(shù)據(jù)類型)。該方法需要傳遞一個 Student 類型的參數(shù),最后需要將一個 StringBuffer 類型的數(shù)據(jù)返回。
1. 成員方法的返回值
若方法有返回值,則在方法體中用 return 語句指明要返回的值,其格式如下所示。
return 表達式或者
return (表達式)其中,表達式可以是常量、變量、對象等。表達式的數(shù)據(jù)類型必須與聲明成員方法時給出的返回值類型一致。
2. 形參、實參及成員方法的調(diào)用
一般來說,可以通過以下方式來調(diào)用成員方法:
methodName({paramList})關于方法的參數(shù),經(jīng)常會提到形參與實參,形參是定義方法時參數(shù)列表中出現(xiàn)的參數(shù),實參是調(diào)用方法時為方法傳遞的參數(shù)。
例 2
下面 retumMin() 方法中的 m 和 n 是形參,調(diào)用 retumMin() 方法時的 x 和 y 是實參。
方法的形參和實參具有以下特點:
- 形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結束時,即刻釋放所分配的內(nèi)存單元。因此,形參只有在方法內(nèi)部有效,方法調(diào)用結束返回主調(diào)方法后則不能再使用該形參變量。
- 實參可以是常量、變量、表達式、方法等,無論實參是何種類型的量,在進行方法調(diào)用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值、輸入等辦法使實參獲得確定值。
- 實參和形參在數(shù)量、類型和順序上應嚴格一致,否則會發(fā)生“類型不匹配” 的錯誤。
- 方法調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的,即只能把實參的值傳送紿形參,而不能把形參的值反向地傳送給實參。因此在方法調(diào)用過程中,形參的值發(fā)生改變,而實參中的值不會變化。
例 3
下面的示例演示了調(diào)用 add() 方法前后形參 x 的變化。
運行上述程序,輸出結果如下:
調(diào)用 add() 方法之前 x 的值:150 形參 x 的值:180 實參 x 的值:150 調(diào)用 add() 方法的返回值:180從輸出結果可以看出,形參 x 值的改變,并沒有影響實參 x。
在調(diào)用成員方法時應注意以下 4 點:
- 對無參成員方法來說,是沒有實際參數(shù)列表的(即沒有 paramList),但方法名后的括號不能省略。
- 對帶參數(shù)的成員方法來說,實參的個數(shù)、順序以及它們的數(shù)據(jù)類型必須與形式參數(shù)的個數(shù)、順序以及它們的數(shù)據(jù)類型保持一致,各個實參間用逗號分隔。實參名與形參名可以相同,也可以不同。
- 實參也可以是表達式,此時一定要注意使表達式的數(shù)據(jù)類型與形參的數(shù)據(jù)類型相同,或者使表達式的類型按 Java
類型轉(zhuǎn)換規(guī)則達到形參指明的數(shù)據(jù)類型。 - 實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即只能由實參傳遞給形參,而不能由形參傳遞給實參。程序中執(zhí)行到調(diào)用成員方法時,Java把實參值復制到一個臨時的存儲區(qū)(棧)中,形參的任何修改都在棧中進行,當退出該成員方法時,Java 自動清除棧中的內(nèi)容。
3. 方法體中的局部變量
在方法體內(nèi)可以定義本方法所使用的變量,這種變量是局部變量。它的生存期與作用域是在本方法內(nèi),也就是說,局部變量只能在本方法內(nèi)有效或可見,離開本方法則這些變量將被自動釋放。
在方法體內(nèi)定義變量時,變量前不能加修飾符。局部變量在使用前必須明確賦值,否則編譯時會出錯。另外,在一個方法內(nèi)部,可以在復合語句(把多個語句用括號{}括起來組成的一個語句稱復合語句)中定義變量,這些變量只在復合語句中有效。
總結
以上是生活随笔為你收集整理的1.5 成员方法的声明和调用,形参,实参的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.4 Java创建一个学生类
- 下一篇: 1.6 this关键字详解(3种用法)