System.out.println();//調用System類裏的標準輸出對象out裏的方法println()
public class Demo001 { //main方法 public static void main(String[] args) { int sum = add(1,2); System.out.println(sum);//3 } //加法 public static int add(int a,int b){ return a+b; } }
java的方法相似於其餘的語言的函數,是一段用來完成特定功能的代碼片斷,通常狀況下,定義一個方法包含如下語法:java
方法包含一個方法頭和一個方法體。下面是一個方法的全部部分:數組
修飾符:修飾符,這是可選的,告訴編輯器如何調用該方法。定義了該方法的訪問類型編輯器
返回值類型:方法可能會返回值。returnValueType s是方法返回值的數據類型。有些方法執行所需的操做,但沒有返回值。在這種狀況下,returnValueType是關鍵字void。return有一個必須在最後函數
方法名:是方法實際名稱。方法名和參數表共同構成方法的簽名命令行
參數類型:參數像是一個佔位符。當方法被調用時,傳遞值給參數。這個值稱爲實參或變量。參數列表是指方法的參數類型、順序和參數個數。參數是可選的,方法能夠不包含任何參數設計
形式參數:在方法被調用時用於接收外界輸入的數據code
形式參數,用來定義做用的對象
實參:調用方法時實際傳給方法的數據blog
實際參數是實際調用傳給它的參數遞歸
方法體:方法體包含具體的語句,定義該方法的功能
修飾符 返回值類型 方法名(參數類型 參數名){ .... 方法體 .... return 返回值;//若是是void則不用返回 }
調用方法:對象名.方法名(實參列表)
Demo demo = new Demo();//Demo是類名 demo.test(1,2);
java支持兩種調用方法的方式,根據方法是否返回值來選擇
int larger = max(30,40);
System.out.println("Hello,shenxiaoyu!");
例子:比大小
public class Demo002 { public static void main(String[] args) { int max = max(10,29); System.out.println(max);//29 } //比大小 public static int max(int num1,int num2){ int result = 0; if (num1==num2){ System.out.println("num1==num2"); return 0;//終止方法 } if(num1>num2){ result = num1; }else{ result = num2; } return result;//終止方法 } }
重載就是在一個類中,有相同的函數名稱,但形參不一樣的函數
方法重載的規則
實現理論:
方法名稱相同時,編譯器會根據調用方法的參數個數,參數類型等去逐個匹配,以選擇對應的方法,若是匹配失敗,則編譯器報錯
關於不一樣加法形式的方法重載:
public class Demo003 { public static void main(String[] args) { int sum1 = add(1,2); int sum2 = add(1,2,3); double sum3 = add(2.5,5.9); System.out.println(sum1);//3 System.out.println(sum2);//6 System.out.println(sum3);//8.4 } //加法 public static int add(int a,int b){ return a+b; } //三個數相加 public static int add(int a,int b,int c){ return a+b+c; } //兩個浮點型相加 public static double add(double a,double b){ return a+b; } }
有時候你但願運行一個程序時候再傳遞給它消息。這要靠傳遞命令行參數給main()函數實現。
public class Demo004 { public static void main(String[] args) { //args.length 數組長度 for(int i = 0;i<args.length;i++){ System.out.println("args["+i+"]:"+args[i]); } } }
cmd命令行傳參:
public class Demo005 { public static void main(String[] args) { //調用可變參數 Demo005 demo005 = new Demo005(); demo005.test(1,2,3,4,5,6); } public void test(int... i){ System.out.println(i[0]); System.out.println(i[1]); System.out.println(i[2]); System.out.println(i[3]); System.out.println(i[4]); System.out.println(i[5]); } }
關於一個找最大值的例子:
public class Demo006 { public static void main(String[] args) { //調用可變參數的方法 printMax(34,3,3,2,53,99);//最大值是99.0 printMax(new double[]{88,57.3,97.2});//最大值是97.2 } public static void printMax(double... numbers){ if(numbers.length==0){ System.out.println("沒有數在數組裏"); return; } double result = numbers[0]; for(int i=1;i<numbers.length;i++){ if(numbers[i]>result){ result=numbers[i]; } } System.out.println("最大值是"+result); } }
遞歸就是:A方法調用A方法,本身調用本身
遞歸結構包括兩個部分:
棧溢出
public class Demo007 { //棧溢出 public static void main(String[] args) { Demo007 test = new Demo007(); test.test(); } public void test(){ test(); } }
利用遞歸階乘:
public class Demo008 { /* 2! 2*1 3! 3*2*1 4! 4*3*2*1 5! 5*4*3*2*1 */ public static void main(String[] args) { int f = factorial(6); System.out.println(f);//720 } public static int factorial(int n){ if (n==1){ return 1; }else{ return n*factorial(n-1); } } }