方法
System.out.println(): 系統的一個類(類似自己寫的HelloWorld)+System下的一個輸出對象 +一個方法(println())。調用系統類里面的標准輸出對象out中的println()方法。
Java方法是語句的集合,它們在一起執行一個功能。
-
方法是解決一類問題的步驟的有序組合
-
方法包含於類或對象中
-
方法在程序中被創建,在其他地方被引用
設計方法的原則:方法的本意是功能塊,就是實現某個功能的語句塊的集合。我們設計方法的時候,最好保持方法的原子性,就是一個方法只能完成一個功能,這樣有利於我們后期的擴展
package com.study.method;
public class Demo01 {
//main方法
//修飾符(public static)+ 返回值(void void表示不返回東西) main方法執行完就結束了
public static void main(String[] args) {
int sum = add(1, 2);
System.out.println(sum);
test();
}
//加法 需要返回相加后的值,給方法取名add,加一些參數a,b
//直接調用add調不了,加一個static,使其成為類變量
public static int add(int a,int b){
return a+b; //返回a+b
}
public static void test(){ //void代表空的意思,返回一個空 方法名為test 加static調用
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
//System.out.println();
System.out.print("\n");
}
}
//main方法要時刻保持簡潔干凈,盡量把一些公共模塊都提取到外面通過方法調用的形式來進行調用
}
}
Java的方法類似於其他語言的函數,是一段用來完成特定功能的代碼片段,一般情況下,定義一個方法包含以下語法:
方法包含一個方法頭和一個方法體
修飾符(可以有多個public、static、final等) 返回值類型(int、void) 方法名(參數類型 參數名){
...
方法體
...
return 返回值;
}
- 修飾符:可選的(可寫可不寫),告訴編譯器如何調用該方法,定義了該方法的訪問類型。
- 返回值類型:有些方法執行所需的操作,但沒有返回值。這種情況下,returnValueType是關鍵字void。
- 方法名:是方法的實際名稱,方法名和參數表共同構成方法簽名。
- 參數:參數像是陽光占位符,當方法被調用時,傳遞值給參數,這個值被稱為實參或變量。參數列表是指方法的參數類型、順序和參數的個數,參數是可選的,方法可以不包含任何參數。
- 參數類型:形式參數:在方法被調用時用於接收外界輸入的數據。(定義方法的時候隨便編的一些參數)
實參:調用方法時實際傳給方法的數據。
方法的重載
重載就是在一個類中,有相同的函數名稱,但形參不同的函數。
-
方法名稱必須相同。
-
參數列表必須不同(個數不同、或類型不同、參數排列順序不同等)。
-
方法的返回類型可以相同,也可以不相同。
-
僅僅返回類型不同不足以成為方法的重載。
方法名稱相同時,編譯器會根據調用方法的參數個數、參數類型等去逐個匹配,以選擇對應的方法,如 匹配失敗,則編譯器報錯。
package com.study.method;
public class Demo01 {
//main方法
//修飾符(public static)+ 返回值(void void表示不返回東西) main方法執行完就結束了
public static void main(String[] args) {
// int sum = add(1, 2); // 通過此語句調用add方法,把1和2傳遞進去,最后返回一個sum,實際調用給它傳遞的參數,即為實參
//int sum = add(10.0, 20.0);
double sum = add(10.1, 5.6);
System.out.println(sum);
// test();
}
//加法 需要返回相加后的值,給方法取名add,加一些參數a,b
//直接調用add調不了,加一個static,使其成為類變量
public static int add(int a,int b){ //形式參數,用來定義作用的,需要接收兩個值才能進行計算
return a+b; //返回a+b
}
//方法重載 double類型的數相加
public static int add(double a,double b){
double result =a+b;
return (int)result; //強制轉換,返回整型
}
public static void test(){ //void代表空的意思,返回一個空 方法名為test 加static調用
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
//System.out.println();
System.out.print("\n");
}
}
//main方法要時刻保持簡潔干凈,盡量把一些公共模塊都提取到外面通過方法調用的形式來進行調用
}
}
命令行傳參
有時候你希望運行一個程序的時候再給它傳遞信息。這要靠傳遞命令行參數給main()函數實現。
java、javac、javadoc可以在doc窗口中的命令行窗口去操作,java程序也可以
package com.study.method;
public class Demo03 {
public static void main(String[] args) {
//args.length 數組長度
for(int i = 0;i <args.length;i++){
System.out.println("args["+i+"]"+args[i]); //當前第幾個參數的值是多少
}
}
}
通過Terminal打開命令行,編譯文件(Javac+包的路徑)
通過Doc窗口命令行編譯:
- 通過javac Demo03生成class文件,編譯的時候不用加包名。
- 通過java命令執行,要退到src目錄下才能執行,執行的時候需要加上包名。
注意:出現編碼GBK的不可映射字符的解決辦法