1. 程式人生 > 其它 >Java複習-5

Java複習-5

技術標籤:java基礎java

Java複習-5

方法

方法是語句的集合,他們在一起執行一個功能

最好一個方法只做一個功能(原子性

結構

修飾符  返回值型別  方法名  (引數型別  引數名){

方法體
return 返回值

}

方法的呼叫注意

Java中為什麼方法加個static。main方法才能呼叫static方法?

不是一定要加的,只是你加了之後可以在方法裡面直接呼叫,不需要建立物件;因為main函式是靜態方法,所以有一些方法設定為靜態是為了方便呼叫。
注意:1、在靜態方法中,不能呼叫非靜態方法及引用非靜態變數。但是反過來卻沒問題。
2、JSR規範強制規定了main()方法的格式必須是: public static void main(String[] args){…}

Java是值傳遞

方法的過載

過載(overloading) 是在一個類裡面,方法名字相同而引數不同返回型別可以相同也可以不同

每個過載的方法(或者建構函式)都必須有一個獨一無二的引數型別列表

最常用的地方就是構造器的過載。


int add(int num1,int num2){
	return num1 + num2;
}


int add(int num1,int num2 ,int num3){
	return num1 + num2 + num3;
}




可變引數



//一個方法只能指定一個可變引數,它必須是方法的最後一個引數,任何普通引數都必須在他前面

static
int add(int... args) { int result = 0; for(int i = 0;i < args.length;i ++) { result += args[i]; } return result; }

遞迴

自己呼叫自己

基數要小,否則會卡死

漢諾塔問題:一次只能移動一個盤子;不能把大盤子放在小盤子上;除去盤子在兩個柱子之間移動的瞬間,盤子必須都在柱子上。(在這三點要求下把盤子從起始柱子A全部移動到目標柱子C上)

在這裡插入圖片描述

程式碼如下:
基礎情形:n==1的時候終止遞迴,進行回溯。

public class HanNuoTower {
	public
void tower(int n,char s,char m,char e)//n個塔從s經過m最終全部移動到e { if(n==1) move(s,e); else { tower(n-1,s,e,m); move(s,e); tower(n-1,m,s,e); } } public void move(char s,char e){ System.out.println("move "+s+" to "+e); } public static void main(String []args){ HanNuoTower hnt =new HanNuoTower(); hnt.tower(4,'A','B','C'); } } tic void main(String []args){ HanNuoTower hnt =new HanNuoTower(); hnt.tower(4,'A','B','C'); } }