以下我們根據JAVA的調用方法做了整理和總結,以及相關的調用代碼也做測試,以下來學習下。
java方法主要分為三種:
一種是靜態方法
這種方法的話用static修飾,這個方法不需要與某個特定對象進行綁定;第二種就是常見的沒有用static修飾的方法;第三種就是構造方法,構造方法主要用于對類進行初始化。
靜態方法可以使用一個定義且實例化過的對象來調用也可以直接使用類名來調用。
實例方法必須使用一個被定義且實例化過的對象來調用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class A{ //靜態方法,可以使用類名點方法名直接調用,比如A.sayHello() public static void sayHello(){ System.out.println("靜態方法輸出成功:Hello"); } //實例方法,必須創建類的實例,然后才能調用A a = new A(); a.sayWorld(); public void sayWorld(){ System.out.println("實例方法輸出成功:World"); } } public class MyDemo { public static void main(String[] args) { A a = null; try{ a.sayHello();//調用靜態方法 }catch(NullPointerException e){ System.out.println("調用靜態方法出現了空指針異常"); } try{ a.sayWorld();//調用實例方法 }catch(NullPointerException e){ System.out.println("調用實例方法出現了空指針異常"); } } } |
測試輸出:
靜態方法輸出成功:Hello
調用實例方法出現了空指針異常
Java動態調用類中方法代碼
使用Math.class.getDeclaredMethod("sin", Double.TYPE);訪問指定的方法,其中”sin”表示要訪問的方法的名稱為sin,Double.TYPE表示入口參數的類型為double
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.lang.reflect.Method; public class DongTai { public static void main(String[] args) { try { System.out.println("調用Math類的靜態方法sin()"); Method sin = Math.class.getDeclaredMethod("sin", Double.TYPE); Double sin1 = (Double) sin.invoke(null, new Integer(1)); System.out.println("1的正弦值是:" + sin1); System.out.println("調用String類的非靜態方法equals()"); Method equals = String.class.getDeclaredMethod("equals", Object.class); Boolean mrsoft = (Boolean) equals.invoke(new String("明日科技"), "明日科技"); System.out.println("字符串是否是明日科技:" + mrsoft); } catch (Exception e) { e.printStackTrace(); } } } |
運行后的輸出結果
原文鏈接:http://blog.csdn.net/Tobin_Xu/article/details/78618461