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