Java類方法


類中的方法定義物件的行為。方法是一個命名的程式碼塊。呼叫方法的程式碼是方法的呼叫者。
可選地,方法可以接受來自呼叫者的輸入值,並且它可以向呼叫者返回值。

輸入值的列表稱為引數。 方法可以具有零引數。 如果一個方法有零個引數,我們說該方法沒有任何引數或方法不使用引數。

方法總是在類的主體內定義。方法宣告的一般語法是形式 -

<modifiers> <return type> <method name> (<parameters list>) <throws clause>{
    // Body of  the   method  goes  here
}
  • <modifiers> 是修飾符的可選列表;
  • <return type> 是從方法返回的值的資料型別;
  • <method name> 是方法的名稱;

方法引數

方法名稱後面是一對閉合的小括號。或者,可以在括號內為方法指定一個或多個引數,多個引數用逗號分隔。
右括號可以後跟一個throws子句。最後,在大括號內指定程式碼的實現。方法宣告中的四個部分是必需的:

  • 返回型別;
  • 方法名稱;
  • 一個小括號;
  • 一個大括號;

以下是一個方法的範例:

  • 方法的名稱是:add
  • 使用兩個 int 型別的引數: n1n2
  • 返回這兩個引數的和;
int add(int n1, int n2)  { 
   int sum = n1  + n2; 
   return  sum;
}

有時,方法不會向其呼叫者返回值。 如果方法不向呼叫者返回任何值,則使用關鍵字void作為返回型別。

方法名稱必須是有效的Java識別符號。
通常,Java方法從小寫開始,隨後使用字帽,也就是之後的單詞的第一個字母大寫。例如,getNamesetNamegetDogCountcreateDog都是有效的方法名稱。方法可以從其呼叫者獲取輸入值。引數用於從呼叫者獲取輸入值。

引數由兩部分組成:資料型別和變數名稱。 方法引數是變數宣告。變數用於儲存從方法的呼叫者傳遞的輸入值。逗號分隔方法中的引數。

在以下範例中,add方法宣告兩個引數:n1n2。 兩個引數都是int資料型別。

int add(int n1, int n2)  { 
   int sum = n1  + n2; 
   return  sum;
}

當呼叫add方法時,呼叫者必須傳遞兩個int值。從呼叫者傳遞的第一個值儲存在n1中,從呼叫者傳遞的第二個值儲存在n2中。
引數n1n2也稱為形式引數。

方法通過其在特定上下文中的簽名唯一地標識。 方法的簽名是其名稱及其引數的數量,型別和順序的組合。

區域性變數

在方法,建構函式或方法塊中宣告的變數稱為區域性變數。在方法中宣告的區域性變數僅在執行方法的持續時間記憶體在。因為區域性變數只存在一個臨時持續時間,所以不能在方法,建構函式或宣告它的塊之外使用。

方法的形式引數被視為區域性變數。 當呼叫方法時,在方法的正文執行之前,它們用實際的引數值初始化。

使用區域性變數需要遵守以下規則 -

  • 預設情況下不會初始化區域性變數。
  • 在程式向區域性變數分配值之前,不能在程式中存取區域性變數。
  • 區域性變數可以在方法體中的任何地方宣告。 但是,它必須在使用之前宣告。
  • 當類變數或範例變數和區域性的名稱相同時,區域性變數隱藏(覆蓋)範例變數和類變數。

以下是一個簡單的範例:

public class Main {
  public static int sum(int a , int b){
    int sum = 0; // 區域性變數
    sum = a + b; 
    return sum; // 返回後,sum變數被回收銷毀
  }
  public static void main(String[] args) {
    int a = 100;
    int b = 200;
    int sum = 0;
    sum = sum(a, b);
    out.println("The sum of a and b is: " + sum);
  }
}