Java方法的調用以及方法參數傳遞、方法的遞歸調用


一、方法的調用以及方法參數傳遞

1、方法的定義:

​ 訪問修飾符 返回值類型 方法名 ([參數列表]){

​ 方法體

}

如果方法體中需要一些未知的數據作為執行條件,那么這些數據可以作為參數。

如果方法需要返回數據,在定義有返回值的方法時需要明確返回值類型

方法調用的兩種方式:

1、對象名.方法名(參數)

2、直接寫方法名調用,但必須是static修飾的

//獲取這個字符串的第一個字符
public static char method1(String str){
    return str.charAt(0);//獲取字符串的第一個字符
}
//方式一:調用方法
對象名.method1();
//方式二:調用靜態方法(static修飾的)
String s="abc";
char c=method1(s)//s將賦值給方法的形參str,那么方法執行時str有值
//c就是方法調用后的返回值

1、方法的參數是基本數據類型,它傳遞的是值

//計算一個數的平方
public static int pow(int a){
    a=a+2;//6
    return a*a;//6*6=36
}
public static void main(String[] args){
    int num=4;
    int sum=pow(num);//num是實參	num賦值給a
    System,out,println(num);//4
    System.out.println(sum);//36
}

2、方法的參數是引用數據類型,它傳遞的是地址(String類型除外)

//參數 是數組類型
public static int pow(int[] arr){
    arr[0]=arr[0]+2;//根據地址 改變數組的第一個元素值arr[0]=4;
    return arr[0]*arr[0];//4*4
}

調用

//調用另一個pow
	int[] array={2,3};
	int sum2=pow(array);//array中存放數組的地址,將地址賦值給arr 形參
	System.out.println(array[0]);//4
	System.out.println(sum2);//16

方法的重載:

​ 在一個類中,存在相同方法名的兩個及以上的方法,且他們的參數列表不同(參數類型不同,參數個數不同,參數順序不同),不考慮參數名,不考慮返回值類型

​ 一個類中不能存在完全相同的方法,他們是重復的方法JVM編譯不通過

例如:

public int add(int a,int b){
    return a+b;
}
public int add(long a,long b){
    return (int)(a+b);
}
//與前兩個 不重載
public void add(int c,int d){
    
}
//能與 方法1,2構成重載
public void add(int a){
    
}
//能與 方法1,2構成重載
public void add(int a,long b){
    
}
//能與 方法1,2構成重載
public void add(long a,int b){
    
}

把握;方法名是否相同,同時參數列表是否相同(參數個數不同 或者參數類型不同或者參數順序不同)

在一個方法中可以調用其它的方法,它們的執行流程


/**
     * 程序入口
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("這里是main方法的開始");
         method1();
        System.out.println("這是main方法的結束");
    }
    // 在一個方法中可以調用另一個方法, 它們的執行順序是這樣的
    public static   void method1(){
        System.out.println("這是method1 的開始語句塊 ");
        // 調用method2
        method2();
        System.out.println("這是method1的 結束語句塊");
    }
    public static void method2(){
        System.out.println("這是method2 的開始語句塊 ");
        //  調用method3
        method3();
        System.out.println("這是method2 的結束語句塊");

    }

    public static  void  method3(){
        System.out.println("這是method3的執行語句塊");
    }

二、方法的遞歸調用

1、定義

​ 在一個方法中,運用方法自身調用,這樣的調用稱為方法的遞歸調用,為了避免出現方法調用時出現死循環,遞歸調用中必須定義方法結束調用的條件。

方法遞歸調用執行流程

public static void m3(int i){
        if(i==5){
            return ;
        }
        System.out.println("這是m3方法開始i :"+ i);
        i++;
        m3(i);
        System.out.println("m3方法的結束 i:"+ i );
  }
   public static void main(String[] args) {
      

        m3(0); //
    }

練習1 : 使用遞歸計算一個數的階乘

​ n =5 = 5! = 5*4的階乘

​ f(n) = n* f(n-1) = (n-1)*f(n-1-1)

public static int f(int n ){
    if(n==1){
        return 1;
    }
    int s = n*f(n-1);
    System.out.println("結束 --"+s);
    return s;
}
// n =5             n=4                 n=3          n=2           n=1 return 1
 // s = 5*f(4)      s=4* f(3)        s= 3* f(2)    s=2*f(1)
 //  s=5*24          s=4* 6             s=3* 2= 6     s=2
 // s = 120


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM