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

静态初始化

public class HelloWorld {
	int num1;
	int num2;
	static int num3;

	public HelloWorld() {
		num1 = 91;
		System.out.println("通过构造方法为变量num1 赋值");
	}

	{
		num2 = 74;
		System.out.println("通过初始化快为变量num2赋值");
	}
	{
		num3 = 83;
		System.out.println("通过静态初始化为静态变量num3赋值");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HelloWorld hello = new HelloWorld();
		System.out.println("num1:" + hello.num1);
		System.out.println("num2:" + hello.num2);
		System.out.println("num3:" + num3);
		HelloWorld hello2 = new HelloWorld();
	}

}


通过初始化快为变量num2赋值

通过静态初始化为静态变量num3赋值

通过构造方法为变量num1 赋值

num1:91

num2:74

num3:83

通过初始化快为变量num2赋值

通过静态初始化为静态变量num3赋值

通过构造方法为变量num1 赋值

和老师给的答案不一样

提问者:不忘_初心5 2016-04-10 15:49

个回答

  • qq_阿浩_4
    2016-04-12 16:58:25
    已采纳

    15行代码应该少了“ststic”

  • 也枫Dnive
    2016-04-10 15:53:34

     static int num3; 

    static {

            num3 = 83;

            System.out.println("通过静态初始化为静态变量num3赋值");

        }

    应该这样 你看出来有什么不同没