java方法
1. java中方法不能單獨(dú)存在,所有方法必須定義在類中.
2. 從邏輯上說,一個(gè)方法要么屬于一個(gè)對(duì)象,要么屬于一個(gè)類(使用static修改的方法)
3. 永遠(yuǎn)不可能獨(dú)立執(zhí)行方法,執(zhí)行方法必須使用類或?qū)ο笞鳛檎{(diào)用者.包括隱式的this對(duì)象
1. 常用的修飾符:
static 可用于修飾方法,屬性等成員.修飾成員表示這個(gè)成員是屬于這個(gè)類所共有的,而不是屬于這個(gè)類的某一個(gè)實(shí)例.不使用static的成員則表示,這些成員是屬于該類的某一個(gè)實(shí)例,而不是屬于這個(gè)類.靜態(tài)成員不能訪問非靜態(tài)成員.
2. 方法的參數(shù)傳遞機(jī)制
java方法的參數(shù)傳遞機(jī)制:值傳遞.所謂值傳遞,就是將實(shí)際參數(shù)的副本傳入方法內(nèi),而參數(shù)本身不受任何影響.
基本數(shù)據(jù)類型和引用類型都是采用值傳遞的方式進(jìn)行.但如果傳遞的是引用類型,雖然傳入方法內(nèi)的是引用類型變量的一個(gè)副本,但兩個(gè)引用類型變量都是指向了同一個(gè)堆內(nèi)存中的對(duì)象,通過任何一個(gè)引用變量對(duì)對(duì)象進(jìn)行操作,都會(huì)對(duì)這個(gè)對(duì)象產(chǎn)生影響.
public class Test {
//基本數(shù)據(jù)類型的值傳遞
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. 形參長度可變的方法
長度可變的形參只能位于形參隊(duì)列的最后,一個(gè)方法中只能出現(xiàn)一個(gè)長度可變的形參.這個(gè)長度可變的形參可以傳入多個(gè)參數(shù),也可以傳入一個(gè)數(shù)組
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"));//可以傳入多個(gè)String
String[] tmp = {"Hello","!","world"};
System.out.println(t.test(tmp));//也可以傳入一個(gè)String數(shù)組
}
}
4. 方法重載
1. 出現(xiàn)在同一個(gè)類中
2. 方法名相同,方法的形參列表不同
3. 方法的其他屬性如返回值類型,修飾符等與方法重載無關(guān)
5. 方法重寫
1. 出現(xiàn)在繼承中,子類和父類同名的方法之間
2. 方法名,方法形參列表相同;返回值類型,子類比父類更小或相等;拋出的異常,子類比父類更小或相等;訪問權(quán)限,子類比父類更大或相等;二者必須同時(shí)為實(shí)例方法,或同時(shí)為類方法
3. 私有的父類方法,是不能被重寫的
6. 構(gòu)造器
1. 每個(gè)java類都至少有一個(gè)構(gòu)造器,如果沒有顯式的提供,系統(tǒng)會(huì)提供一個(gè)無參數(shù)的執(zhí)行體為空的構(gòu)造器
2. 構(gòu)造器可以重載,每個(gè)不同的構(gòu)造器之間可使用this相互調(diào)用,且只能在第一行調(diào)用