1. 程式人生 > >java方法的概念,方法過載,引數傳遞

java方法的概念,方法過載,引數傳遞

一.方法的語法格式

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

修飾符:方法的修飾符比較多,有對訪問許可權進行限定的,有靜態修飾符static,還有最終修飾符final等,這些修飾符在後面的學習過程中會逐步介紹public

返回值型別:用於限定方法返回值的資料型別void

引數型別:用於限定呼叫方法時傳入引數的資料型別

引數名:是一個變數,用於接收呼叫方法時傳入的資料

return關鍵字:用於結束方法以及返回方法指定型別的值

返回值:被return語句返回的值,該值會返回給呼叫者

二.方法練習

//無返回值無引數方法,列印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;
    }
//無返回值有引數方法,列印指定M行,每行N個*號的矩形
    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允許在一個類中定義多個名稱相同的方法,但是引數的型別或個數必須不同,這就是方法的過載

public class MethodDemo02 {
    public static void main(String[] args) {
        // 下面是針對求和方法的呼叫
        int sum1 = add01(1, 2);
        int sum2 = add02(1, 2, 3);
        double sum3 = add03(1.2, 2.3);
        // 下面的程式碼是列印求和的結果
        System.out.println("sum1=" + sum1);
        System.out.println("sum2=" + sum2);
        System.out.println("sum3=" + sum3);
    }

    // 下面的方法實現了兩個整數相加
    public static int add01(int x, int y) {
        return x + y;
    }
    // 下面的方法實現了三個整數相加
    public static int add02(int x, int y, int z) {
        return x + y + z;
    }
    // 下面的方法實現了兩個小數相加
    public static double add03(double x, double y) {
        return x + y;
    }
}

四.過載的注意事項

1.過載方法引數必須不同:

引數個數不同,如method(int x)與method(int x,int y)不同

引數型別不同,如method(int x)與method(double x)不同

引數順序不同,如method(int x,double y)與method(double x,int y)不同

2.過載只與方法名與引數型別相關與返回值無關

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

3.過載與具體的變數識別符號無關

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

 

五.引數傳遞

 

當呼叫方法時,如果傳入的數值為基本資料型別(包含String型別),形式引數的改變對實際引數不影響

當呼叫方法時,如果傳入的數值為引用資料型別(String型別除外),形式引數的改變對實際引數有影響