一、方法是什麼
方法是一種語法結構,它可以把一段代碼封裝成一個功能, 以方便調用
二、實例
package com.hello.method; public class Method { public static void main(String[] args) { /* 一、方法的定義 修飾符 返回值類型 方法名(形參列表){ 方法體代碼; return 返回值; } 二、方法的注意事項 1、如果方法不需要返回結果,則申明返回值類型爲void(無返回值);方法不需要參數,則形參列表可以不寫 2、方法沒有申明返回值類型,內部不能使用return返回數據 三、方法的常見問題 1、方法的編寫順序無所謂 2、方法與方法之間是平級關係,不能嵌套定義——即public裏面不能有public方法 3、方法的返回值類型爲void,方法內則不能使用return返回數據。 public static void main(String[] args) { //像這種返回值類型爲void的,裏面就不能寫return ] 如果方法的返回值類型寫了具體類型,方法內部則必須使用return返回對應值。 public static int sum(int a,int b){ //像這種返回值寫了具體類型,比如int,方法體裏必須要有return return 返回值; System.out.print("hello");//return語句下面,不能編寫代碼,因爲永遠執行不到,屬於無效的代碼。 } 4、有返回值的方法調用時可以選擇定義變量接收結果,或者直接輸出調用 ,甚至直接調用。 無返回值方法的調用只能直接調用一下。 5、方法不調用就不執行,調用時必須嚴格匹配方法的參數情況 四、方法重載的識別技巧 1、只要是同一個類中,方法名稱相同、形參列表不同,那麼他們就是重載的方法,其他都不管! 2、形參列表不同指的是:形參的個數、類型、順序不同,不關心形參的名稱 */ int Dsum = sum(3,6);//定義變量接收結果 System.out.println("定義變量接收結果:"+Dsum); System.out.println(sum(1, 3));//直接輸出調用 sum(4,5);//直接調用 print();//無返回值方法的調用只能直接調用 int Esum=sumn(100);//調用sumn方法,計算1-100的和 System.out.println("1-100的和爲:"+Esum); check(100);//調用check方法,判斷奇偶數 int [] ages = {14,16,17,20}; int max = getArrayMaxData(ages);//調用最大值方法 System.out.println("最大值是:"+max); //這裏要注意方法參數傳遞機制(基本類型的參數傳遞),最終輸出結果爲10、20、10 int a = 10;//定義變量a //1、調用change方法,將a存儲的值10傳遞給方法中的形參變量a,輸出打印結果爲10 //2、方法內部定義變量a=20,繼續打印結果爲20 change(a); //3、此時方法已執行完,並跳出方法,執行方法外的打印,所以這裏的a就當是10,故最後打印結果爲10 System.out.println(a); //引用類型的參數傳遞,最終輸出結果爲20、222、222 int[] arr = {10,20,30}; //1、調用changearr方法,將arr存儲的地址值傳遞給方法中的變量arr,輸出打印結果爲20 //2、方法內部定義變量arr[1]=222,繼續打印結果爲222,此時要注意,因爲引用類型的參數存儲的是地址,所以這裏在方法內部 //定義 changearr(arr); //1、調用 System.out.println(arr[1]);//222 //調用比較數組的方法 int[] arr1 = {10,120,30}; int[] arr2 = {10,20,30}; System.out.println(compare(arr1,arr2)); } //有返回值類型的方法 public static int sum(int a,int b){ int count; count = a+b; return count; } //無返回值類型的方法 public static void print(){ System.out.println("helloword"); } //需求1:定義一個方法,方法中計算出1-n的和並返回 //定義方法重點關注:1、方法是否需要申明返回值類型;2、方法是否需要定義形參列表 public static int sumn(int n){ int sum=0;//聲明一個變量接收計算出來的和,初始值爲0 for (int i = 1; i < n; i++) { sum +=i; }; return sum; } //判斷整數是奇數還是偶數 //需求2:拿一個整數,然後調用方法,把整數交給方法,在方法中輸出該整數爲奇數還是偶數 public static void check(int number){ if(number%2 == 0){ System.out.println(number+"是偶數"); } else { System.out.println(number+"是奇數"); } } //數組求最值改方法實現 //需求3:把找出數組的最大值案例,改造成方法,可以支持返回任意整形數組的最大值數據 public static int getArrayMaxData(int [] arr){ int max=arr[0]; for (int i = 0; i < arr.length; i++) { if(arr[i]>max){ max=arr[i]; } } return max; } //基本類型的參數值傳遞:傳輸的是存儲的數據值 public static void change(int a){ System.out.println(a);//10 a = 20; System.out.println(a);//20 } //引用類型的參數值傳遞:傳輸的是存儲的地址值 public static void changearr(int[] arr){ System.out.println(arr[1]);//20 arr[1] = 222; System.out.println(arr[1]);//222 } //需求4:比較2個數組是否一樣,如果兩個數組的類型,元素個數,元素順序和內容是一樣的我們就認爲這2個數組是一模一樣的。 //請使用方法完成,能夠判斷任意兩個整形數組是否一樣,並返回true或false /* 1、定義一個方法: 參數:接收2個整型數組, 返回值類型:布爾類型 * */ public static boolean compare(int[] arr1,int[]arr2){ //2、判斷2個數組的內容是一樣的 if(arr1.length == arr2.length){ for(int i=0;i<arr1.length;i++){ if(arr1[i] != arr2[i]){ return false; } } return true;//是一樣的 }else { return false; } } }