1. 程式人生 > 其它 >Java方法相關(過載,可變引數,遞迴,命令列傳參,Scanner類)

Java方法相關(過載,可變引數,遞迴,命令列傳參,Scanner類)

System.out.println();

system=>一個類,out=>物件,println=>方法名

過載

  • 在一個類中,相同的函式名稱,但形參不同
  • 過載的規則
    • 方法名必須相同
    • 引數的列表必須不同(個數不同,型別不同,引數排列順序不同等)
    • 方法的返回型別隨意,但不同不足以成為過載
  • 方法名稱相同時,java編譯器會根據引數個數,型別去逐個匹配,失敗會報錯.

可變引數

  • java1.5後支援傳遞同類型的可變引數給一個方法
  • 在方法宣告中,在指定引數型別後面加一個省略號(...)
  • 一個方法中只能定一個可變引數,它必須是方法的最後一個.
public static void main(String[] args) {
    test(1.1, 1, 2, 3, 4, 5, 4, 6, 4);
}

public static void test(double d, int... i) {
    System.out.println(d);
    for(int x:i){
        System.out.println(x);
    }
}

遞迴

  • 遞迴頭:什麼時候不呼叫自身方法,沒有頭,會陷入死迴圈
  • 遞迴體:什麼時候需要呼叫自身方法
  • 主要思想的學習,能不用就不用,容易棧溢位

命令列傳參

先生成.class檔案,再執行時直接後接引數,如

java com.weiyang.method.Demo1 hello world

如果亂碼,後接引數 : -unicode utf-8

Scanner輸入類

naxt(),nextLint(),兩種接受輸入的方法

naxtInt(),nextFloat(),兩種指定型別的輸入

等。。。

public static void main(String[] args) {
    //建立一個掃描器物件,用於接收鍵盤資料
    Scanner scanner = new Scanner(System.in);
    System.out.println("用next方法接收:");

    //會卡在scanner類第一個呼叫的方法處等待輸入
    //next讀到有效字元才會結束輸入,之前的空白都會刪除,之後的空白作為分隔符或結束符
    String str1 = scanner.next();
    System.out.println("輸出的內容為"+str1);

    //nextLine以換行符為結束符,可以得到有效字元前的空白
    String str2 = scanner.nextLine();
    System.out.println("輸出的內容為"+str2);

    //凡是屬於IO流的類如果不關會一直佔用資源
    scanner.close();
}