public class Test { public int x; public static void main(String []args) { System. out. println("Value is" + x); } }
程序会打出 "Value is 0"
程序会抛出 NullPointerException
非静态变量不能够被静态方法引用
编译器会抛出 "possible reference before assignment"的错误
正确答案
C
答案解析
当类加载时,static静态方法随着类加载而初始化,此时实例对象还未被创建,但是非静态成员变量需要等到实例对象创建才会被初始化,故无法被引用,会出现编译错误。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
非静态成员只能被类的实例化对象引用,因此这里在静态方法中访问x会造成编译出错