问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

例题中如果把num1=91前加上int,num2=74前加上int,num3=83前加上int

为什么执行结果显示num1,num2,num3值为0?

提问者:ARUKANA 2019-03-14 12:51

个回答

  • 慕沐3429465
    2019-05-07 20:05:15

    你不加int来赋值就是给成员变量(全局变量)赋值,在main里用到该变量时就输出你赋的值;如果你加了int就相当于你在那个方法里又定义了一个局部变量(和全局变量同名,同类型),并且赋了值,这时局部变量有值了,但全局变量还没赋值,还是默认为0,这时main输出的肯定是那个没赋值的全局变量,就输出默认值0

    int num1=91;//是包括了定义一个变量并赋值两步

  • 慕仔6157324
    2019-05-06 15:30:44

    首先是成员变量,还是局部变量,不同变量作用域中,默认值和主动赋值作用域也不一样!

  • 恩宁哒
    2019-05-06 15:23:49

    因为你这样操作只在方法内部可以使用该变量,在最后的main方法中输出时使用的是全局变量,即一开始你所设定的变量,系统自动赋初值为0,所以你输出的都是0。