Java 方法呼叫的各種分類和大總結

2021-09-25 05:53:34 字數 1764 閱讀 4874

方法可以按本類中的方法和外部類中的方法分類;方法又可以按靜態方法和非靜態的一般方法分類,其中又包含類中繼承方面的知識。而本文也是介於此分類方式來進行方法呼叫方式討論的。

呼叫方式:直接使用方法名呼叫

例子:

1)繼承於父類的靜態方法:直接使用父類方法名呼叫

public class test extends a }

class a

} 控制台輸出:我是型別a的print方法!

2)子類的新方法:直接使用子類新方法呼叫

public class test extends a

public static void main(string args)

} class a

} 控制台輸出:我是型別b的print方法!

注意事項:父類中的靜態方法是不能被重寫的,子類中同名靜態方法只能是新方法。換句話說,父類和子類中含有的其實是兩個沒有關係的方法,它們的行為也並不具有多型性。相關鏈結

呼叫方式:在非靜態**塊直接呼叫,靜態**塊需要構造物件呼叫。

1)繼承於父類的一般方法:建立子類物件呼叫與直接呼叫

public class test extends a

public test()

}class a

} 控制台輸出:我是型別a的print方法!

2)子類重寫的方法:建立子類物件呼叫與直接呼叫

public class test extends a

public static void main(string args)

public test()

}class a

} 控制台輸出:我是型別b的print方法!

3)子類的新方法:建立子類物件呼叫與直接呼叫

public class test extends a

public static void main(string args)

public test()

}class a

} 控制台輸出:我是型別b-2的print方法!

呼叫方式:使用 類名.方法 進行呼叫

public class test

}class a

}

呼叫方式:用外部類構造的物件進行方法呼叫

public class test

}class a

}

本類的靜態方法(可以繼承於父類)可以直接(不通過類名和物件呼叫)在子類的靜態方法中呼叫,但是不能使用this.方法名。所以「在該類的內部呼叫該類的方法是可以不寫類名的,預設了用this呼叫」這句話在很多回答**現,但是這是不夠嚴謹的,原因是其與this關鍵字不能在靜態方法中呼叫相矛盾。不妨將其認為是jvm提供給程式設計師的編譯器蜜糖。

任何類由於都繼承了object類,但是object類中沒有public修飾的靜態方法。但是object類中有native方法,其雖然不能放在子類的靜態方法中,但是在子類的一般方法中可以直接通過方法呼叫,比如wait()方法,但要額外注意方法的異常處理,如下的非靜態方法test01()

public class test catch (interruptedexception e) 

}}

Java的方法過載和方法的呼叫

方法過載 同乙個類中兩個或以上的方法可以有同乙個名字,只要引數宣告不同即可 方法的引數型別相同,個數不同 方法的引數個數相同,型別不同 過載只跟方法的引數型別和個數相關,跟返回值無關 public intcdd int x,int y public intcdd int x,int y int z ...

java 方法的呼叫

方法的呼叫有3種 1.用方法單獨作為語句來完成某一任務。例如 求多個階層和 public class f static int fact int n int s 1 for int i 1 i n i s s i return s public static void main string arg...

JAVA類的方法呼叫和變數

一 呼叫本類中的方法 方法一 被呼叫方法宣告為static 可以在其他方法中直接呼叫。示例 如下 public class helloword 被呼叫方法,這裡使用了static宣告為靜態方法 param x param y return private static int add int x,i...