Java基礎(05)— 方法

Java方法

何謂方法

  • System.out.println(), 那它是什麼?System是系統的類,out是一個對象(輸出對象),println()就是要給方法java

  • Java方法是語句的集合,他們在一塊能夠執行一個功能數組

    • 方法是解決一類問題的步驟的有序組合
    • 方法包含於類或對象中
    • 方法在程序中被建立, 在其餘地方被引用
  • 設計方法的原則:函數

    • 方法的本意是功能塊,就是實現某個功能的語句塊的集合。咱們設計方法的時候,最好保持方法的原子性,就是一個方法只完成1個功能,這樣利於咱們後期的擴展。
  • 回顧方法的命名規則spa

方法得定義及調用

  • Java的方法相似於其它語言的函數,是一段用來完成特定功能的代碼片斷,通常狀況下,定義一個方法包含如下語法命令行

    修飾符 返回值 類型 方法名(參數類型 參數名){
         方法體
         return返回值; 
    }
  • 方法包含一個方法頭和一個方法體。下面是一個方法的全部部分:設計

    • 修飾符:修飾符,這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪問類型
    • 返回值類型:方法可能會返回值。returnValueType 是方法返回值的數據類型。有些方法執行所需的操做,但沒有返回值。在這種狀況下,returnValueType 是關鍵字void
    • 方法名:是方法的實際名稱。方法名和參數表共同構成方法簽名
    • 參數類型:參數像是一個佔位符。當方法被調用時,傳遞值給參數。這個值被稱爲實參或變量。參數列表是指方法的參數類型,順序和參數的個數。參數是可選的,方法能夠不包含任何參數
      • 實參:調用方法時實際傳給方法的數據。
      • 形式參數:在方法被調用時用於接收外界輸入的數據
    • 方法體:方法體包含具體的語句,定義該方法的功能。

  • 方法調用3d

    • 調用方法:對象名.方法名(實參列表)code

    • Java支持兩種調用方法的方式,根據方法是否返回值來選擇。對象

      • 當方法返回一個值的時候,方法調用一般被當作一個值。例如:blog

        int larger = max(30,40);
      • 若是方法返回值是void,方法調用必定是一條語句。

        System. out. println( "Hello, kuangshen!");
    • 課後拓展瞭解:值傳遞(Java)和引用傳遞,Java都是值傳遞

方法重載

  • 重載就是在一個類中,有相同的函數名稱,但形參不一樣的函數。

  • 方法的重載的規則:

    • 方法名稱必須相同
    • 參數列表必須不一樣(個數不一樣、或類型不一樣、參數排列順序不一樣等)
    • 方法的返回類型能夠相同也能夠不相同
    • 僅僅返回類型不一樣不足以成爲方法的重載

命令行傳參

  • 有時候你但願運行一個程序時候再傳遞給它消息。這要靠傳遞命令行參數給main()函數實現。
public class CommandLine {
    public static void main(String args[]){
        for(int i=0; i<args.length; i++){
            System. out. println("args["+ i + "]:"+ args[i]);
        }
    }
}

可變參數

  • JDK 1.5開始,Java支持傳遞同類型的可變參數(不定項)給一個方法。
  • 在方法聲明中,在指定參數類型後加一個省略號(..)。
  • 一個方法中只能指定一個可變參數,它必須是方法的最後一個參數。任何普通的參數必須在它以前聲明。
public static void main(String args[]) {
     //調用可變參數的方法
     printMax(15,22.0,36,25.3);
     printMax(new double[]{1, 2, 3});//本質爲數組
 }
public static void printMax(double... numbers) {
    if (numbers.length == 0) {
        System.out.println("No argument passed");
        return;
    }
    double result = numbers[0];
    //排序!
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] > result) {
            result = numbers[i];
        }
    }
    System.out.println("The max value is " + result);
}

遞歸(能不用就不用)

  • 遞歸就是: A方法調用A方法!就是本身調用本身
  • 利用遞歸能夠用簡單的程序來解決一些複雜的問題。 它一般把一個大型複雜的問題層層轉化爲一個與原問題類似的規模較小的問題來求解,遞歸策略只需少許的程序就可描述出解題過程所須要的屢次重複計算,大大地減小了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合
  • 遞歸結構包括兩個部分:
    • 遞歸頭:何時不調用自身方法,若是沒有頭,將陷入死循環
    • 遞歸體:何時須要調用自身方法

public static void main(String[] args) {
    /*
    階乘:
      2! 2*1
      3! 3*2*1
      5! 5*4*3*2*1 = 120
    */
    System.out.println(f(5));
}
public static int f(int n){
    if(n == 1){
        return 1;
    }else{
        return n * f(n - 1);
    }
}
  • 遞歸圖解

相關文章
相關標籤/搜索