2014-02-18 55 views
-5

這裏我有兩個類。當我嘗試使用靜態引用訪問A類的方法時,它會給出空指針異常。這是爲什麼發生?爲什麼給一個空指針的類的靜態引用異常

A.Java

public class A{ 
    int a; 
    public void getA(){ 
    a=11; 
    System.out.println("a"+a); 
    } 
} 

C.java

public class C{ 
    static A ref; 
    public static void main(String args[]){ 
    ref.getA(); 
} 
} 

當我執行C.

+3

你永遠不會爲A創建實例 – fmodos

+0

爲什麼它不應該給出這種例外? –

+0

您應該詳細瞭解如何使用「靜態」。簡單地說「靜態參考」並不意味着你可以靜態訪問A. –

回答

0
static A ref; 

問題出現此無關與static關鍵字。你不是初始化A,併爲對象的默認值是null,那麼你實際上寫:

ref.getA(); 
0

因爲你還沒有實例化對象ref

你需要做的

A ref = new A();