Try   HackMD
tags: Java 學習筆記

Java 學習筆記 - 4-1: 基本函式 Function

函式定義

把會重複的動作合併,把方法定義出來
函示在物件導向中隸屬於某一類別(Class): 如下方的 MainClass,故稱為成員函式(member function),又稱為方法(method)
通常一個功能由多種函式組成

public class MainClass { public static viod main(String[] args) { Scanner scan = new Scanner(System.in); int a; a = scan.nextInt(); int b = scan.nextInt(); } }
  • nextInt() 就是一個方法
  • 上面的 main 就是一個函式
  • 函式不能定義在另一個函式裡面,只能定義在類別裡面
  • 函式有兩個重要的動作: (但非必要)
    • 傳入
    • 傳出 (如果沒有要回傳 在型別那邊寫 void)
  • 有 void 時直接寫 return 即可
  • 呼叫一個 function 的時候會先宣告()的東西(如果有的話)

使用動機

可以方便設計程式、實作、運算

如何寫函式

public static int[] f(int a, int b) { return a + 1; }
  • public 為存取修飾詞
  • static 靜態
  • int 表示要回傳的型態,也可以是陣列
  • f 為函式的名稱,只要不要用到保留字可隨意定義
  • () 內代表的是參數,可傳入該函式的值,可設定一個以上且型別不同
  • return 為回傳值的一種,一定要有任何一種回傳,不能有不回傳的可能性發生,需要回傳當初指定的型別 (除非是 void)
  • 要知道一個 function 有沒有回傳可以直接在編譯器中查詢
public class MainClass { public static viod main(String[] args) { int x = f(5); System.out.println(x); } public static int f(int a) { return a + 1; } }

會回傳 6

案例示範: 交換陣列的位置

public class MainClass { public static viod main(String[] args) { int arr[] = new int[5]; for (int = 0; int < arr.length; i++) { arr[i] = i + 1; } swap(arr, 1, 3); // 陣列位置1, 3交換位置 for (int = 0; i < arr.length; i++) { System.out.println(arr[i]); } } public static void swap(int[] arr, int index1, int index2) { int tmp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = tmp; } }

案例示範: 輸入兩個數字代表某數的幾次方

public class MainClass { public static viod main(String[] args) { int a = 5; a = pow(a, 3); System.out.println(a); } public static int pow(int a, int b) { int result = a; for (int i = 0; i < b - 1; i++) { result *= a; } return result; } }