Java基礎語法之方法

方法語法格式

修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2,......){ 
    執行語句
    ……… 
    return 返回值;
}

對於上面的語法格式中具體說明如下:
 修飾符:方法的修飾符比較多,有對訪問權限進行限定的,有靜態修飾符static,還有最終修飾符final等,這些修飾符在後面的學習過程中會逐步介紹
 返回值類型:用於限定方法返回值的數據類型
 參數類型:用於限定調用方法時傳入參數的數據類型
 參數名:是一個變量,用於接收調用方法時傳入的數據
 return關鍵字:用於結束方法以及返回方法指定類型的值
 返回值:被return語句返回的值,該值會返回給調用者

需要特別注意的是,方法中的“參數類型 參數名1,參數類型 參數名2”被稱作參數列表,它用於描述方法在被調用時需要接收的參數,如果方法不需要接收任何參數,則參數列表爲空,即()內不寫任何內容。方法的返回值必須爲方法聲明的返回值類型,如果方法中沒有返回值,返回值類型要聲明爲void,此時,方法中return語句可以省略。
接下來通過一個案例來演示方法的定義與使用,如下圖所示

public class MethodDemo01 {
    public static void main(String[] args) {
        int area = getArea(3, 5); // 調用 getArea方法
        System.out.println(" The area is " + area);
    }

    // 下面定義了一個求矩形面積的方法,接收兩個參數,其中x爲高,y爲寬
    public static int getArea(int x, int y) {
        int temp = x * y; // 使用變量temp記住運算結果
        return temp; // 將變量temp的值返回
    }
}

在上述代碼中,定義了一個getArea()方法用於求矩形的面積,參數x和y分別用於接收調用方法時傳入的高和寬,return語句用於返回計算所得的面積。在main()方法中通過調用getArea()方法,獲得矩形的面積,並將結果打印。

方法調用圖解

接下來通過一個圖例演示getArea()方法的整個調用過程,如下圖所示。
這裏寫圖片描述
從上圖中可以看出,在程序運行期間,參數x和y相當於在內存中定義的兩個變量。當調用getArea()方法時,傳入的參數3和5分別賦值給變量x和y,並將x*y的結果通過return語句返回,整個方法的調用過程結束,變量x和y被釋放。

方法定義練習

分別定義如下方法:
定義無返回值無參數方法,如打印3行,每行3個*號的矩形
定義有返回值無參數方法,如鍵盤錄入得到一個整數
定義無返回值有參數方法,如打印指定M行,每行N個*號的矩形
定義有返回值有參數方法,如求三個數的平均值

無返回值無參數方法,如打印3行,每行3個*號的矩形

public static void printRect(){
        //打印3行星
        for (int i=0; i<3; i++) {
            //System.out.println("***"); 相當於是打印3顆星,換行
            //每行打印3顆星
            for (int j=0; j<3; j++) {
                System.out.print("*");  // ***
            }
            System.out.println();
        }
    }

有返回值無參數,如鍵盤錄入一個數

public static int getNumber(){
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        return number;
    }

無返回值,有參數

public static void printRect2(int m, int n){
        //打印M行星
        for (int i=0; i<m; i++) {
            //每行中打印N顆星
            for (int j=0; j<n; j++) {
                System.out.print("*");  
            }
            System.out.println();
        }
    }

有返回值有參數

public static double getAvg(double a, double b, double c) {
        double result = (a+b+c)/3;
        return result;
    }

方法的重載

Java允許在一個類中定義多個名稱相同的方法,但是參數的類型或個數必須不同,這就是方法的重載。

重載的注意事項

重載方法參數必須不同:

參數個數不同,如method(int x)與method(int x,int y)不同
參數類型不同,如method(int x)與method(double x)不同g
參數順序不同,如method(int x,double y)與method(double x,int y)不同

重載只與方法名與參數類型相關與返回值無關

如void method(int x)與int method(int y)不是方法重載,不能同時存在

重載與具體的變量標識符無關

如method(int x)與method(int y)不是方法重載,不能同時存在

參數傳遞圖解

這裏寫圖片描述

通過上面的兩段程序可以得出如下結論:

當調用方法時,如果傳入的數值爲基本數據類型(包含String類型),形式參數的改變對實際參數不影響
當調用方法時,如果傳入的數值爲引用數據類型(String類型除外),形式參數的改變對實際參數有影響
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章