1. 程式人生 > >java程式設計值得注意的地方

java程式設計值得注意的地方

持續更新. . . . . . 

1、方法的引數是值傳遞

也就是說當呼叫者傳入值後,無論方法內部怎麼修改都不會影響到呼叫者呼叫前的賦值。

值得注意的是,當傳入一個非基本型別資料時,方法內部修改了這個資料的內部資料時,這個操作會影響到外部呼叫者。

package test;

public class Test {
	public static void main(String[] args) {
		person p = new person("tang",20);
		setName1(p);//方法1呼叫 沒有影響
		System.out.println(p);
		
		setName2(p);//方法2呼叫 改變了
		System.out.println(p);
	}
	/**
	 * 不會影響
	 * @param p
	 */
	public static void setName1(person p){
		p = new person("guo",17);
	}
	/**
	 * 會影響
	 * @param p
	 */
	public static void setName2(person p){
		p.name = "guo";
		p.age = 17;
	}
}
class person{
	public String name;
	public Integer age;
	person(String name,Integer age){
		this.name = name;
		this.age = age;
	}
	@Override
	public String toString() {
		return "person [name=" + name + ", age=" + age + "]";
	}
}

2、遞迴的基本法則

1、基準情形,必須總要有某些基準情形,不使用遞迴就可以計算出結果(簡單理解為遞迴的退出方式)。

2、不斷推進,對於需要求解計算的一定是朝著基準情形方向的推進的。

舉例最簡單的求0-5之間的和,1.基準情形是當數字等於0時不需要計算就可以得到結果。2.數字從5開始朝著基準情形推進直到0.

public static void main(String[] args) {
		System.out.println(f(5));
	}
	public static int f(int n){
		if(n == 0)
			return 0;
		else return f(n-1) + n;
	}