java方法
1. java中方法不能單獨存在,所有方法必須定義在類中.
2. 從邏輯上說,一個方法要么屬于一個對象,要么屬于一個類(使用static修改的方法)
3. 永遠不可能獨立執行方法,執行方法必須使用類或對象作為調用者.包括隱式的this對象
1. 常用的修飾符:
static 可用于修飾方法,屬性等成員.修飾成員表示這個成員是屬于這個類所共有的,而不是屬于這個類的某一個實例.不使用static的成員則表示,這些成員是屬于該類的某一個實例,而不是屬于這個類.靜態成員不能訪問非靜態成員.
2. 方法的參數傳遞機制
java方法的參數傳遞機制:值傳遞.所謂值傳遞,就是將實際參數的副本傳入方法內,而參數本身不受任何影響.
基本數據類型和引用類型都是采用值傳遞的方式進行.但如果傳遞的是引用類型,雖然傳入方法內的是引用類型變量的一個副本,但兩個引用類型變量都是指向了同一個堆內存中的對象,通過任何一個引用變量對對象進行操作,都會對這個對象產生影響.
public class Test { //基本數據類型的值傳遞 private static void swap(int a ,int b) { int tmp = a; a = b; b = tmp; System.out.println("swap()方法中:a="+a+",b="+b); } // 引用類型的值傳遞 private static void swap2(Obj o) { int tmp = o.a; o.a = o.b; o.b = tmp; System.out.println("swap2()方法中:a="+o.a+",b="+o.b); } public static void main(String[] args) { int a = 10; int b = 20; swap(a,b); System.out.println("swap()方法外:a="+a+",b="+b); Obj o = new Obj(); swap2(o); System.out.println("swap2()方法中:a="+o.a+",b="+o.b); } }
3. 形參長度可變的方法
長度可變的形參只能位于形參隊列的最后,一個方法中只能出現一個長度可變的形參.這個長度可變的形參可以傳入多個參數,也可以傳入一個數組
public class Test3 { public String test(String... Strs) { String result = ""; for (String tmp : Strs) { result += tmp; } return result; } public static void main(String[] args) { Test3 t = new Test3(); System.out.println(t.test("Hello","!","world"));//可以傳入多個String String[] tmp = {"Hello","!","world"}; System.out.println(t.test(tmp));//也可以傳入一個String數組 } }
4. 方法重載
1. 出現在同一個類中
2. 方法名相同,方法的形參列表不同
3. 方法的其他屬性如返回值類型,修飾符等與方法重載無關
5. 方法重寫
1. 出現在繼承中,子類和父類同名的方法之間
2. 方法名,方法形參列表相同;返回值類型,子類比父類更小或相等;拋出的異常,子類比父類更小或相等;訪問權限,子類比父類更大或相等;二者必須同時為實例方法,或同時為類方法
3. 私有的父類方法,是不能被重寫的
6. 構造器
1. 每個java類都至少有一個構造器,如果沒有顯式的提供,系統會提供一個無參數的執行體為空的構造器
2. 構造器可以重載,每個不同的構造器之間可使用this相互調用,且只能在第一行調用