码迷,mamicode.com
首页 > 其他好文 > 详细

静态方法和非静态变量

时间:2019-06-17 12:43:26      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:border   ora   result   question   print   创建   静态方法   rgs   word   

1
2
3
4
5
6
7
8
public class Test
{
    public int x;
    public static void main(String []args)
    {
        System. out. println("Value is" + x);
    }
}

对于上面这段代码,以下说法正确的是:

正确答案: C   你的答案: D (错误)

A程序会打出 "Value is 0"
B程序会抛出 NullPointerException
C非静态变量不能够被静态方法引用
D编译器会抛出 "possible reference before assignment"的错误

答案解析:

当类加载时,static静态方法随着类加载而初始化,此时实例对象还未被创建,但是非静态成员变量需要等到实例对象创建才会被初始化,故无法被引用。

静态方法先行执行,导致变量x还未被初始化,所以编译出错

静态方法和非静态变量

标签:border   ora   result   question   print   创建   静态方法   rgs   word   

原文地址:https://www.cnblogs.com/zhuyeshen/p/11038916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!