java花括号_为什么这个Java代码在花括号({})之外的方法?

Marcello de ..

12

这是一个初始化程序块,在加载/创建类的实例时执行,用于初始化类的成员属性(请参阅Java http://download.oracle.com/javase/tutorial/java/javaOO /initial.html).您可以拥有任意数量的块,它们将从上到下实例化.

除了实例块之外,您还可以拥有任意数量的静态块来初始化静态成员.它们将被声明如下:

public class Initialization {

static int b = 10;

int a = 5;

static {

b = -9;

}

{

a += 2;

}

public static void main(String[] args) throws Exception {

System.out.println(ClientVoting.b);

System.out.println(new ClientVoting().a);

System.out.println(ClientVoting.b);

System.out.println(new ClientVoting().a);

}

static {

b = 1;

}

{

a++;

}

}

在初始化类时,静态成员"b"初始化为10,然后第一个静态作用域将其值更改为-9,然后更改为1.这仅在加载类时执行一次.这在main方法的第一行初始化之前执行.

另一方面,类的类似示例是实例引用"a".A初始化为5,然后实例块将其更新为7,最后一个块更新为8.正如预期的那样,静态成员仅在此代码中初始化一次,而实例块在您创建新实例时执行.

此示例的输出为1 8 1 8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值