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

请各位大神帮我看一下

package zuoshiyan;


public class HelloWorld1 {

int sum1;

int sum2;

static int sum3;

public void a() {

sum1=12;

System.out.println("diyici");

}

{

sum2=13;

}

{

sum3=14;

}

public static void main(String[] args) {

HelloWorld1 hello=new HelloWorld1();

System.out.println(hello.sum1);

System.out.println(hello.sum2);

System.out.println(sum3);

HelloWorld1 hello2=new HelloWorld1();

HelloWorld1 hello3=new HelloWorld1();

}


}

/*此操作运行结果为:

 * 0

 * 13

 * 14

 *请问,为什么不对sum1赋值

 *难道就必须要用构造方法才行么

 */


提问者:慕码人2851768 2018-11-24 22:56

个回答

  • qq_慕斯卡6482855
    2018-11-25 11:09:44
    已采纳

    你对sum1的赋值时放在一个方法里的,创建hello对象后没有使用这个方法,所以sum1的值是系统默认的int型的值,就是0了

  • 凉城灬可燃
    2018-11-25 11:13:02

    sum1=12的作用范围好像只有在a()这个方法中,而你的main里面没有用到a()这个方法,所以等于没有对这个sum1赋值,所以还是默认0