JAVA基礎 - 方法

一、方法是什麼

  方法是一種語法結構,它可以把一段代碼封裝成一個功能, 以方便調用

二、實例

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;
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章