java程式設計值得注意的地方
阿新 • • 發佈:2018-11-06
持續更新. . . . . .
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; }