天天看點

java day05 方法(形參實參、重載、遞歸)1、方法end、今天就到此為止吧,明天依舊光芒萬丈

1、方法

1.1 定義規則

通路修飾符 傳回值類型 方法名(參數類型1 參數1,參數類型2 參數2…){

方法體

}

示例:

public static int (int num1,int num2){
     return;
 }
           

具體代碼展示:

package Day05_method;
/**
 * @author Ran
 * @since JDK 1.8
 */
public class Demo02 {
    public static void main(String[] args) {
        print(3,"!");
        strprintf();
        print(4,"$");
        strprintf();
        print(5,"%");
    }
    public static void print(int num,String str){
        for (int i=0;i<=num;i++){
            for (int j=0;j<=i;j++){
                System.out.print(str);
            }
            System.out.println();
        }
    }
    public static void strprintf(){
        System.out.println("-------------");
    }
}
           

調用方法流程:

java day05 方法(形參實參、重載、遞歸)1、方法end、今天就到此為止吧,明天依舊光芒萬丈

注意事項:

  • 1.方法必須定義在類中
  • 2.靜态方法隻能調用靜态方法,是以近期寫的方法需要加上static
  • 3.方法可以重複調用,減少代碼量,提高代碼的複用性
  • 4.方法隻做一件事
  • 5.确定方法的作用,确定方法名,确定參數,确定傳回值類型

1.2 優點

好處:
  • 減少代碼備援。
  • 提高複用性。
  • 提高可讀性。
  • 提高可維護性。
  • 友善分工合

1.3 方法的參數

多數情況下,方法與調用者之間需要資料的互動;調用者必須提供必要的數

據,才能使方法完成相應的功能。

代碼展示:

package com.qf.ran.method;
/**
 * @author Ran
 * @since JDK 1.8
 *      編寫方法 計算2個整數的和并傳回
 *      方法的傳回值類型由方法傳回的資料的資料類型決定
 *      如果沒有傳回資料,則使用void
 */
public class Demo03 {
    public static void main(String[] args) {
        //1.調用方法并接受傳回值
        int num = add(3,4);
        System.out.println("num:"+num);
        //2.調用方法不接收傳回值
        add(4,5);
    }
    //計算2個數之和的方法
    public static int add(int num1,int num2){
        int sum = num1 +num2;
        return sum;
    }
}
           

1.4 重載

重載:
  1. 方法必須都在一個類中
  2. 方法的名字必須一樣
  3. 方法的參數清單不一樣 – 參數個數不一樣或者參數類型不一樣
  4. 與傳回值沒有關系

代碼展示:

package com.qf.ran.method;

/**
 * @author Ran
 * @since JDK 1.8
 *
 *      重載:
 *          1.方法必須都在一個類中
 *          2.方法的名字必須一樣
 *          3.方法的參數清單不一樣    --  參數個數不一樣或者參數類型不一樣
 *          4.與傳回值沒有關系
 *
 */
public class Demo05 {
    public static void main(String[] args) {
        add(1,2,3);
    }
    public static void add(){
        System.out.println("添加方法");
    }
    //重複定義
    /*public static void add(){
        System.out.println("第二個添加方法");
    }*/
    //重載
    public static void add(int num){
    }
    //重載
    public static void add(String str){
    }
    //重載
    public static void add(int num1,int num2){
        System.out.println(num1+num2);
    }
    //重載
    public static void add(int num1,int num2,int num3){
        System.out.println(num1+num2+num3);
    }
    //重複定義  --  參數個數一樣,參數類型一樣,形參名不一樣
    /*public static void add(int num2,int num1){

    } */
    //重複定義  --  參數個數一樣,參數類型一樣,傳回值類型不一樣
    /*public static double add(int num1,int num2){
        return 0.0;
    }*/
}
           

5.2 形參與實參

定義文法:

public static void 方法名稱( 形式參數 ){

//方法主體

}

經驗:
  • “形參”等價于“局部變量的聲明”。
調用文法:
  • 方法名稱( 實際參數 );
經驗:
  • “實參”等價于“局部變量的指派”。
作用:
  • 方法的參數可以讓代碼功能更靈活、普适性更高,易于修改及維護。

1.5 遞歸

遞歸:
  • 1.方法裡調用方法本身
  • 2.方法裡有出口

代碼示例:

package Day05_method;
/**
 * @author Ran
 * @since JDK 1.8
 *
 *      遞歸:
 *          1.方法裡調用方法本身
 *          2.方法裡有出口
 *
 *      階乘:
 *          1!  =   1                   =   1
 *          2!  =   1*2                 =   1!*2
 *          3!  =   1*2*3               =   2!*3
 *          4!  =   1*2*3*4             =   3!*4
 *          ...
 *          n!  =   1*2*3....*n         =   (n-)!*n
 *
 */
import java.util.Scanner;

public class Demo06 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("輸入數字,計算其階乘:");
        long num1 = input.nextLong();
        if(num1<=0){
            System.out.println("輸入有誤");
        }else{
            long num2 = recursion(num1);
            System.out.printf("%d!=%d",num1,num2);
        }
    }

    public static long recursion(long num){
        if (num==1){
            return 1;
        }
        return recursion(num-1)*num;
    }
}
           

圖示講解:

java day05 方法(形參實參、重載、遞歸)1、方法end、今天就到此為止吧,明天依舊光芒萬丈

end、今天就到此為止吧,明天依舊光芒萬丈