Java方法相關(過載,可變引數,遞迴,命令列傳參,Scanner類)
阿新 • • 發佈:2021-07-21
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(); }