leetcode——有效的括號
阿新 • • 發佈:2021-01-23
java方法
- 方法是為完成一個操作而組合在一起的語句組
- 方法包含於物件或者類中
- 方法在程式中被建立,在其他地方被引用
設計方法的原則:最好保持方法的原子性,就是隻完成一個功能,這樣有利於我們後期的擴充套件
關於方法有以下幾點需要掌握
- 定義方法
- 呼叫方法
- 方法的過載
- 可變引數
定義方法
java方法類似於其它語言函式,是一段用於完成特定功能的程式碼片段,一般情況下,定義一個方法包含以下語法:
- 方法包含一個方法頭和方法體,下面是一個方法的所有部分
- 修飾符
- 返回值型別
- 方法名
- 引數型別
- 形式引數
- 實際引數
- 方法體
定義一個方法
public class Demo01 { public static void main(String[] args) { int sum = add(30,50); System.out.println(sum); } //定義一個方法 public static int add(int a,int b){ return a+b; } }
上圖為a+b的方法的定義
方法的呼叫
呼叫方法:物件名**.**方法名
java支援兩種呼叫方法的方式,根據方法是否返回值來選擇
當方法返回一個值的時候,方法呼叫通常被當作一個值。例如
int larger = max(30,40);
如果方法的返回值是void,方法呼叫一定是一條語句。
程式碼體現:
public class Demo02 { public static void main(String[] args) { Demo02 demo02 = new Demo02(); //呼叫方法 demo02.Test(); } //定義方法 public static void Test(){ int count = 0; for (int i = 1; i < 1000; i++) { if (i % 5 == 0) { System.out.print(i + "\t"); count += 1; if (count % 3 == 0) { System.out.println(""); } } } } }
方法的過載
過載就是在一個類中,有相同的函式名稱,但形參不同的函式。
方法的過載規則:
- 方法名稱必須相同
- 引數列表必須不同(個數,型別,或者排列順序不同等等)
- 方法的返回型別可以相同可以不同
- 僅僅返回型別不同不足以成為方法的過載
程式碼體現:
public class Demo03 { public static void main(String[] args) { //呼叫方法 double num = max(10.0,20.0); System.out.println(num); } //方法的過載 public static double max(double num1,double num2){ double result = 0; if (num1 > num2) { result = num1; } else if (num1 < num2) { result = num2; } if (num1==num2){ System.out.println("num1=num2"); return 0; //終止方法 } return result; } public static int max(int num1,int num2) { int result = 0; if (num1 > num2) { result = num1; } else if (num1 < num2) { result = num2; } if (num1==num2){ System.out.println("num1=num2"); return 0; //終止方法 } return result; } }
可變引數
- jdk1.5開始,java支援傳遞同類型的可變引數給一個方法。
- 宣告時,在指定引數型別後面加省略號…
- 一個方法中只能指定一個可變引數,它必須是方法的最後一個引數。任何普通的引數必須在它之前宣告。
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
demo05.test(1,2,3,4);
}
//可變引數
public static void test(int... i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
}
}
遞迴
最後提一下遞迴,遞迴是java中非常重要的一個思想,利用遞迴可以解決一些複雜的問題。
遞迴包含兩個部分,遞迴頭和遞迴體
- 遞迴頭:什麼時候不呼叫自身方法,如果沒有頭將陷入死迴圈
- 遞迴體:什麼時候需要呼叫自身方法
程式碼體現
用程式碼實現求數的階乘
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//利用遞迴求解階乘
int x = scanner.nextInt();
System.out.println(x+"的遞迴是"+f(x));
}
// i=1 :f(1)=1
// i=2 :f(2)=2*f(1)==2*1
// i=3 :f(3)=3*f(2)=3*2*f(1)=3*2*1
public static int f(int i){
if (i==1){
return 1;
}
else {
return i*f(i-1);
}
}
}
這樣求階乘是為了更好地理解遞迴思想,一般情況下儘量少使用遞迴呼叫自身的方法,因為會造成記憶體溢位,只適用於小數目的計算,這裡是為了理解遞迴思想才使用的這種方法。
遞迴的思想還是非常重要的
寫在最後
如果你想知道,就應該去做;如果你想知道,就應該去探索