20 方法的定義和作用

方法詳解_方法的定義和作用

**方法有什麼作用?**

先來看一個需求
計算10+15的值
計算20+30的值

按照以前學習的知識,你可能會這樣編寫代碼:

int a = 10;
int b = 15;
int sum1 = a + b;
System.out.println(sum1);

int d = 20;
int e = 30;
int sum2 = d + e; 
System.out.println(sum2);

比如你們公司需要招聘會計,會計A只會計算10+15的和,會計B只會計算20+30的和,如果有其他數據需要計算的話還得再招聘會計,顯然這是不行的。
上面兩部分代碼的內容都是計算兩組數字的和,功能是相同的,只不過數據不同。倘若再計算其他兩組數據的和,則需要再重複編寫一下上面的代碼,這樣會導致代碼的冗餘,如果相同的功能,最好是能夠通過直接傳遞不同的數值來完成運算,在實際應用當中,應該減少冗餘,提高代碼的複用性,那該如何提高代碼的複用性呢?我們需要定義一個方法。

main方法
其實在之前的學習當中,已經接觸過一個方法了,那就是main方法,main方法是所有程序的入口,這是sun公司規定的,程序都是從main方法開始執行的,如果將一個程序比喻成一座大樓,那麼main方法就相當於是這個樓最外面的大門。

方法初體驗
下面咱們先來體驗一下方法,看看方法有什麼好處:

/*
    方法初體驗
    方法實際上就是一段代碼片段

*/
public class Test{

    public static void main(String[] args){

        //計算10加15的和
        //調用sumInt方法
        sumInt(10,15);//(10 , 15)叫做實際參數列表,簡稱:實參

        //計算20加30的和
        //調用sumInt方法
        sumInt(20,30);
    }


    //定義方法,完成兩個整數的求和。
    //注意:目前所有的方法請定義成public static
    //該方法的作用就是計算兩個int類型求和
    //以後如果需要計算兩個int類型的求和,直接調用該方法就可以了
    public static void sumInt(int a,int b){//(int a , int b) 是形式參數列表,簡稱:形參
        int c = a + b;
        System.out.println(a + "+" + b +"=" +c);
    }
}

方法的優點就是可以提高代碼的複用性。以後要有編寫方法的意識,不要把所有代碼都堆積在main方法中。什麼時候需要定義方法?當希望提高某段代碼複用性的時候可以去定義一個方法。

注意:

1 方法體中不能定義方法,只能在類體中定義方法。
2 上面代碼中的(int a , int b)叫做形式參數列表,簡稱形參,調用sumInt方法時傳入的(10 , 15)叫做實際參數列表,簡稱:實參。java語言中有規定,實參和形參在數據類型上要對應相同,並且在數量上要相同。
3 形參就是局部變量,變量名的命名可以隨意命名,最好是見名知意

局部變量和成員變量

變量根據聲明的位置分爲:

1 局部變量:在方法體當中聲明的變量
2 成員變量:在方法體之外聲明的變量

如何定義方法

修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
        方法體語句;
        //如果方法沒有返回值的話就不需要return了。
        return 返回值; 
    } 

修飾符:暫時先寫 public static。後面再詳細的講解其他的修飾符和作用。

返回值類型:可以是java語言中的任何一種數據類型(基本數據類型和引用數據類型)。

如果方法執行結束後,沒有任何返回值,返回值類型填寫void,即表示沒有返回值。

方法名:自己定義,只要符合命名規則即可,使用駝峯方式命名,即第一個單詞首字母小寫,後面單詞的首字母大寫,例如sumInt。

參數:
沒有參數:如果沒有參數,參數類型和參數名可以不寫,()裏面空着就行

有參數:可以有一個,或多個參數,多個參數用”,”隔開

參數類型:就是參數的數據類型,基本數據類型和引用數據類型都可以

參數名:就是變量名,符合命名規則即可

方法體語句:就是完成功能的代碼。

return:如果方法的返回值類型不是void,那麼在方法體中必須使用return 語句來返回數據。return語句一旦執行,則方法結束,因此在方法中return後面的代碼是不會執行的。

返回值:方法執行的結果,將結果返回給調用者。

main方法解讀

public static void main(String[] args)

public static是修飾符
void表示main方法結束之後不返回任何值
main是方法的名字,是sun公司規定好的
(String[] args)是形式參數列表,該參數表示是一個String類型的數組,形參的名字是隨意的,下面這種寫法也是可以的,只不過通常都會將參數名字寫成args。
public static void main(String[] monkey1024)

再次回顧上面的代碼
例1:如下代碼是沒有返回值的方式

public class MethodTest{

    //程序的入口
    public static void main(String[] args){

        sumInt(10,15);
        sumInt(20,30); 
    }


    //定義方法,完成兩個整數的求和。
    //注意:目前所有的方法請定義成public static
    public static void sumInt(int a,int b){
        int c = a + b;
        System.out.println(a + "+" + b +"=" +c);
    }
}

例2:有返回值的方式

public class MethodTest{

    public static void main(String[] args){

        //因爲方法的返回值是int類型,所以定義int類型的變量來接收返回值
        int result1 = sumInt(10,15);
        int result2 = sumInt(20,30); 
        System.out.println(result1);
        System.out.println(result2);

        //下面這樣寫也可以
        //因爲sumInt方法的返回值是int類型,所以其計算的結果其實就是一個int類型的數據
        System.out.println(sumInt(10,15));
        System.out.println(sumInt(20,30));
    }


    //返回值類型爲int
    public static int sumInt(int a,int b){
        int c = a + b;
        return c;

    }

}

定義方法時只有兩種情況,一種是有返回值的,一種是沒有返回值的,這個可以根據具體的需求去定義使用哪種方式,如果需要方法計算出的結果再進行下一步運算的話,那就定義有返回值的。Java語言是人類編寫出來的,所以很多概念也是來源於生活。

case 1.你的老婆給你一張銀行卡,讓你取10元錢,隨便花,當做你的零用錢。這種情況就不需要返回值,你取了錢之後怎麼花隨便,老婆也不會管。
case 2.你的老婆給你一張銀行卡,讓你取1000元錢,然後再把這些錢給她,她要去買衣服。這種情況需要返回值,你取了錢之後,一分也不能動,需要全部上繳老婆。
上面的情況裏面,如果你不知道銀行卡密碼的話,還需要老婆告訴你,這就相當於老婆把密碼當做一個參數傳給你,你得到這個密碼後才能去取錢。

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