2014-02-18 24 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();